1 / 28

Introduction to Software Engineering

Introduction to Software Engineering. LECTURE 2 By Umm-e- Laila. Topics to be covered. Software Engineering and its Layered Technology (Process, Methods & Tools) Software Process Framework Capability Maturity Model Personal and Team process Model Summary. Software Engineering.

Download Presentation

Introduction to Software Engineering

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. IntroductiontoSoftware Engineering LECTURE 2 By Umm-e-Laila Compiled by: Umm-e-Laila

  2. Topics to be covered • Software Engineering and its Layered Technology (Process, Methods & Tools) • Software Process Framework • Capability Maturity Model • Personal and Team process Model • Summary Compiled by: Umm-e-Laila

  3. Software Engineering • Some realities: • a concerted effort should be made to understand the problem before a software solution is developed • design becomes a pivotal activity • software should exhibit high quality • software should be maintainable • The seminal definition: • [Software engineering is] the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.

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

  5. THE LAYERED APPPROACH • Software engineering comprises of three key elements A. Methods: • Includes project planning, estimation, system and software requirement analysis ,design of data structure , program architecture and algorithm procedure , coding , testing and maintenance B. Tools: • Provide automated or semi automated supports for methods. When these tools are integrated for usability with one another, a system for support of software development is established and is called CASE.(Computer Aided software engineering.) C. Procedures. • Defines the sequence in which methods will be applied. The deliverable ( document , reports , form etc. etc.) that are required , the controls that help to ensure the quality and coordinate change and the mistakes that enable software managers to assess program. 

  6. THE LAYERED APPPROACH-Cont

  7. A Process Framework • Process • Activities • Actions • Task • Process framework

  8. A Process Framework Software process Process framework Umbrella activities framework activity # 1 software engineering action # 1.1 work tasks work products quality assurance points project milestones Task sets

  9. Generic Process framework activities. • Communication – lots of communication and collaboration with customer and other stakeholders.. Encompasses requirements gathering. • Planning – establishes plan for software engineering work that follows. Describes technical tasks, likely risks, required resources, works products and a work schedule • Modeling – encompasses creation of models that allow the developer and customer to better understand software requirements and the design that will achieve those requirements. • Construction – code generation and testing. • Deployment – software, partial or complete, is delivered to the customer who evaluates it and provides feedback.

  10. Umbrella Activities Framework is augmented by a number of umbrella activities. • Software project tracking and control - allows software team to assess progress against project plan and take necessary action to maintain schedule. • Risk management – assess risk that may effect the outcome of the project or the product quality. • Formal technical reviews – assess software engineering work products to uncover and remove errors before they are propagated to the next action or activity. • Measurement – defines and collects process, project and product measures that assist team in developing software • Software configuration management – manages the effect of change throughout the software process • Reusability management – defines criteria for work product reuse and establishes mechanism to achieve reusable components • Work product preparation and production – included work activities required to create work product such as documents, logs, form & lists.

  11. What is a Process? • (Webster) A system of operations in producing something; a series of actions, changes, or functions that achieve an end or a result • (IEEE) A sequence of steps performed for a given purpose

  12. What is a Software Process? • (SEI) A set of activities, methods, practices, and transformations that people use to develop and maintain software and the associated products (e.g., project plans, design documents, code, test cases, and user manuals) • As an organization matures, the software process becomes better defined and more consistently implemented throughout the organization • Software process maturity is the extent to which a specific process is explicitly defined, managed, measured, controlled, and effective

  13. Capability Maturity Model (SW-CMM) • Developed in 1987 by the Software Engineering Institute (SEI) at Carnegie-Mellon University under the sponsorship of DARPA • Described in the book Managing the Software Process in 1989 by Watts Humphrey • Published as a separate document: Capability Maturity Model for Software in 1991

  14. Immature Software Organizations • Software processes are generally improvised • If a process is specified, it is not rigorously followed or enforced • The software organization is reactionary • Managers only focus on solving immediate (crisis) problems • Schedules and budgets are routinely exceeded because they are not based on realistic estimates • When hard deadlines are imposed, product functionality and quality are often compromised • There is no basis for judging process quality or for solving product or process problems • Activities such as reviews and testing are curtailed or eliminated when projects fall behind schedule

  15. Five Levels of Software Process Maturity

  16. Characteristics of Each Level • Initial Level (Level 1) • Characterized as ad hoc, and occasionally even chaotic • Few processes are defined, and success depends on individual effort • Repeatable (Level 2) • Basic project management processes are established to track cost, schedule, and functionality • The necessary process discipline is in place to repeat earlier successes on projects with similar applications

  17. Characteristics of Each Level (continued) • Defined (Level 3) • The software process for both management and engineering activities is documented, standardized, and integrated into a standard software process for the organization • All projects use an approved, tailored version of the organization's standard software process for developing and maintaining software • Managed (Level 4) • Detailed measures of the software process and product quality are collected • Both the software process and products are quantitatively understood and controlled

  18. Characteristics of Each Level (continued) • Optimized (Level 5) • Continuous process improvement is enabled by quantitative feedback from the process and from piloting innovative ideas and technologies

  19. The CMM Structure

  20. What Is Personal Software Process (PSP)? • The Personal Software Process (PSP) shows engineers how to • manage the quality of their projects • make commitments they can meet • improve estimating and planning • reduce defects in their products PSP emphasizes the need to record and analyze the types of errors you make, so you can develop strategies eliminate them.

  21. PSP model Framework Activities Planning – isolates requirements and based on these develops both size & resource estimates. A defect estimate is made. High level Design – external specification of all components. All issues are recorded and tracked. High level Design Review- formal verification to uncover errors Development- metrics are maintained for all important tasks & work results. Postmortem- using measures & metrics collected effectiveness of process is determined an improved.

  22. Personal Software Process Because personnel costs constitute 70 percent of the cost of software development, the skills and work habits of engineers largely determine the results of the software development process.  Based on practices found in the CMMI, the PSP can be used by engineers as a guide to a disciplined and structured approach to developing software. The PSP is a prerequisite for an organization planning to introduce the TSP.

  23. PSP.. The PSP can be applied to many parts of the software development process, including - small-program development - requirement definition - document writing - systems tests - systems maintenance - enhancement of large software systems

  24. What Is Team Software Process (TSP)? The Team Software Process (TSP), along with the Personal Software Process, helps the high-performance engineer to - ensure quality software products - create secure software products - improve process management in an organization

  25. TSP Framework Activities Launch high level design Implementation Integration Test postmortem

  26. TSP.. Engineering groups use the TSP to apply integrated team concepts to the development of software-intensive systems. A launch process walks teams and their managers through - establishing goals - defining team roles - assessing risks - producing a team plan

  27. Benefits of TSP The TSP provides a defined process framework for managing, tracking and reporting the team's progress. Using TSP, an organization can build self-directed teams that plan and track their work, establish goals, and own their processes and plans. These can be pure software teams or integrated product teams of 3 to 20 engineers. TSP will help your organization establish a mature and disciplined engineering practice that produces secure, reliable software. 

  28. Summary • Software is now a key element in the computer-based system and products. • Software is composed of programs, data and computer based systems. • The intent of Software Engineering is to provide a framework for building higher quality software.

More Related