1 / 28

Advance Software Engineering Lecture 1 Naveed Hussain

This lecture delves into the systematic approach of software engineering, emphasizing the development, operation, and maintenance of software with a focus on project management, cost-efficiency, productivity, and quality assurance, aiming for reliable, user-friendly, and maintainable software products. It covers software production aspects, cost-benefit analysis, and effort breakdown in software development, highlighting the balancing act between requirements such as cost, efficiency, and reliability while maintaining a continuous loop of problem-solving and evolution. The lecture also explores software engineering practices, project management tasks, process frameworks, quality assurance, software configuration management, and software lifecycle models to create stable and controlled software products through various maturity levels and key process areas.

Télécharger la présentation

Advance Software Engineering Lecture 1 Naveed Hussain

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Advance Software Engineering Lecture 1 Naveed Hussain

  2. Software Engineering - IEEE • The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. • The study of approaches as in 1.

  3. Software Engineering ‘all aspects of software production’ - Software engineering is not just concerned with the technical processes of software development but also with activities such as software project management and with the development of tools, methods and theories to support software production. -Sommerville

  4. A software engineer is challenged to produce high-quality software with finite amount of resources and to a predicted schedule and budget.

  5. Cost Benefit Law of diminishing returns Making the engineering decision!

  6. Software Engineering Software Engineering is not just about producing software, but about producing software in a COST-EFFECTIVE manner.

  7. The Balancing Act! Potentially conflicting requirements • Cost vs. Efficiency • Cost vs. Reliability • Efficiency vs. User-interface Challenge is to balance these requirements.

  8. Software Development Loop Problem Definition Status Quo Technical Development Solution Integration

  9. The name of the game is continuous change and evolution in all dimensions!

  10. Well-Engineered Software • Provides the required functionality • Reliable • User-friendly • Cost-effective • Efficient • Maintainable

  11. Breakdown of Effort Cost - Software Cost Estimation by Capers Jones 13 Configuration Mgt. 0.41% 14 Integration 2.71% 15 User Documentation 9.67% 16 Unit Testing 4.50% 17 Function Testing 4.50% 18 Integration Testing 3.84% 19 System Testing 3.38% 20 Beta Testing 3.02% 21 Acceptance Testing 1.94% 22 Independent Testing 3.38% 23 Quality Assurance 4.50% 24 Installation and Training 1.94% 25 Project Management 6.75% No. Activity Effort 1 Requirements 3.84% 2 Prototyping 4.50% 3 Architecture 2.25% 4 Project Plans 1.33% 5 Initial Design 3.84% 6 Detailed Design 4.50% 7 Design Reviews 3.02% 8 Coding 13.50% 9 Reuse acquisition 1.13% 10 Package Purchase 1.69% 11 Code Inspection 4.50% 12 Independent V&V 5.42%

  12. Effort Breakdown • Project Management 8.08% • Requirements 14.43% • Design 11.36% • Coding 13.50% • SQA 30.64% • SCM 13.02% • Integration 6.54% • Misc. ~3%

  13. Software Engineering Practices • Software product realization • Software project management • Software process management • Software quality assurance • Software configuration management

  14. project planning and management • configuration management • quality assurance • installation and training • etc. • Requirements • Design • Coding • Testing • Maintenance • etc. Management Construction

  15. Method Task Set A Software Engineering Framework T O O L S Process Quality Focus

  16. Common Process Framework Framework Activities Task Sets TASKS MILESONES, DELIVERABLES SQA POINTS Umbrella Activities

  17. The Process • A software process is a road map that helps you create a timely, high quality result. • It is the way we produce software • Provides stability and control • Work Product • Programs, documents, and data produced as a consequence of the software engineering activities

  18. Process Maturity • SEI – Software Engineering Institute • 5 maturity levels • Capability Maturity Model (CMM)

  19. CMM Maturity Levels OPTIMIZED – Process Improvement MANAGED – Process Measurement DEFINED – Process Definition REPEATABLE – Project Management INITIAL – Ad hoc Process

  20. Key Process Areas (KPAs) • Commitments • Activities • Goals • Abilities • Methods for monitoring implementation • Methods for verifying implementation

  21. Level 2 KPAs • Software Configuration Management • Software Quality Assurance • Software subcontract Management

  22. Level 2 KPAs - Continued • Software project tracking and oversight • Software project planning • Requirement management

  23. Level 3 KPAs • Peer reviews • Inter-group coordination • Software product Engineering • Integrated software management

  24. Level 3 KPAs - Continued • Training program • Organization process management • Organization process focus

  25. Level 4 KPAs • Software quality management • Quantitative processmanagement

  26. Level 5 KPAs • Process change management • Technology change management • Defect prevention

  27. Software Lifecycle Models • The way you organize your activities • Lifecycle model is a series of steps through which the product progresses

  28. Software Engineering Phases • Vision – focus on why • Definition – focus on what 2. Development – focus on how 3. Maintenance – focus on change Vision Definition Development Maintenance

More Related