Beruflich Dokumente
Kultur Dokumente
Atul Gupta
Methodologies:
Collection of techniques applied across software development and unified by a philosophical approach
Tools:
Instrument or automated systems to accomplish a technique
10/21/2010
Functional
Non-Functional
Tool
Resources
roles
System * * Model Document Participant Time Equipment
Notation
RESPONSIBILITIES Requirements, Scope, Constraints like budget, schedule Domain Knowledge, use of the system Managing the project, estimation, planning, scheduling and tracking, hiring people, reporting Ensure usability Various roles in software development
Zoe (HCI Specialist) John (Analyst), Marc (Programmer), Zoe (Tester) John
Technical Writer
WORK PRODUCT
TYPE
DISCRIPTION Contractual document between client and development organization Installation and configuration instructions Reports about tasks that are completed or in progress for the people in the hierarchy Test plans, test procedure, test cases and results Delivered functionality, resolved and unresolved issues
Specification (SRS) Deliverable Operation Manual Deliverable Status Report Internal work product Internal work product Deliverable
RUP
Analysis Modeling
XP
Design
SCRUM
Analysis Modeling
Use case diagram and documentation System models
Dynamic models (ex. Sequence diagram and Statechart) Structural models (ex. Object model)
Passenger
PurchaseOneWayTicket
updateBalance()
Zone
Design
System Design (Architecture)
Platforms Persistence data management strategy Global control flow Boundary conditions Subsystem decomposition and deployment diagram
Traveler Interface
Updater
Local Tariff
Central Tariff
Implementation
Conversion of object model into code Code Reuse Coding Standard and Practices Testable Code TDD
Testing
At Different levels Unit, Integration, System, User Regression Testing Specialized Testing like performance, security, load, Stress testing
Process
Project Management
Estimation Planning Scheduling and Tracking
Project
Product Management
Product
SE Dimensions
Process
Project
Product
People
10/21/2010
24
20% of the modules contribute 80% of the cost 20% of the modules contain 80% of the errors! 20% of the errors consume 80% of the repair budget 20% of the modules take 80% of the execution time 20% of the tools are used 80% of the time
25
Summary
Software Engineering is the application of an engineering approach in the development and maintenance of quality software SE is a multi-disciplinary field Solving problems
Complex Change
Questions!
1. What are the main differences between a student software and industrial-strength software? 2. If developing a program for solving a problem requires effort E, it is estimated that an industrial-strength software for solving that problem will require 10E effort. Where do you think this extra effort cost is spent? 3. What measurements will you take in a project to measure the productivity, and how will you determine the productivity from these measures? 4. What are the different attributes of software quality? If for an accounting software we are most interested in ensuring that the software does not make any computation mistakes, then which of the quality attributes should we be most concerned about? 5. What are some of the project management tasks that you will do differently for a large project as compared to a small project? How will your execution of these tasks change? 6. Suppose changes are to be made to a software system that is in operation. Why will changes to such a system cost a lot more than just making changes to the source code files?