Software Engineering Software Engineering a

42 slides
0.13 MB

Similar Presentations

Presentation Transcript


Chapter 2 The Process


What is Software Process?A framework for the tasks that are required to build high-quality software.


Is Process synonym with SE?The answer is “yes” and “no”. A software process defines the approach that is taken as software is engineered. But software engineering also encompasses technologies that populates the process – technical methods and automated tools.


2.1 Software Engineering: A Layered Technology“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.” [Fritz Beuer] Lack of software quality, customer satisfaction, timely product delivery, importance of measurement and metrics, and mature process.


SE: A Layered Technology“Software engineering: (1) The application of a systematic, disciplined, quantifiable approach to the development , operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approach as in (1).” [IEEE]


A Layered TechnologySoftware EngineeringSoftware Engineeringa “quality” focusprocess modelmethodstools


A “quality” focusContinuous process improvement Bedrock that supports software engineering


ProcessIs the foundation of software engineering Defines a framework for a set of key process areas (KPAs)  Effective delivery of SE technology Management control of software project Context of technical methods applied Work products Milestones, Quality ensured Proper change management


MethodsProvide technical how-to’s for building software. Encompass a broad array of tasks that include requirements analysis, program construction, testing, and support. Rely on a set of basic principles that govern each area of the technology and include modeling activities and other descriptive techniques


ToolsProvide automated or semi-automated support for the process and the methods. CASE: computer-aided software engineering is a system for the support of software development. Combines SW, HW, and a SE database (a repository containing important information about analysis, design, program construction, and testing)


A Generic View of SEEngineering is analysis, design, construction, verification, and management of technical (or social) entities. Entity  computer software A software engineering process must be defined: definition phase, development phase, and support phase.


Definition PhaseFocuses on “what” What information is to be processed? What function and performance are desired? What system behavior can be expected? Interface, design constraints, validation criteria  identify key requirements of the system and SW.


Development PhaseFocuses on “how” How data are to be constructed? How function is to be implemented within a software architecture? Procedural details, interfaces, design  programming, testing. Three technical tasks: software design, code generation, software testing.


Support PhaseFocuses on “change” associated with error correction, adaptations, changes. Four types of changes: Correction  Corrective maintenance Adaptation  Adaptive maintenance Enhancement  Perfective maintenance Prevention  Preventive maintenance, often called Software Engineering  more easily corrected, adapted, and enhance.


Umbrella ActivitiesSoftware project tracking and control Formal technical review Software quality assurance Software configuration management Document preparation and production Reusability management Measurement Risk management


A Common Process FrameworkCommon process framework Framework activities work tasks work products milestones & deliverables QA checkpoints Umbrella Activities


Process MaturitySoftware Engineering Institute (SEI) has developed a comprehensive model predicated on a software engineering capabilities that should be present as organization reach different levels of process maturity. Called Capability Maturity Model (CMM).


CMMLevel 1: Initial The software process is characterized ad hoc and occasionally chaotic. Level 2: Repeatable Basic project management process are established to track cost, schedule, and functionality. Level 3: Defined the software process for both management and engineering activities is documented, standardized and integrated into an organizationwide software process.


CMM (Cont’d)Level 4: Managed Detailed measures of the software process and product quality are collected. Both SW process and product are quantitatively understood and controlled using detailed measures. Level 5: Optimizing Continuous process improvement is enabled by quantitative feedback from the process and from testing innovative ideas and technologies.


Key Process Areas (KPAs)Each KPA is described by identifying the following characteristics: Goals Commitments Abilities Activities Methods for monitoring implementation Methods for verifying implementation


KPA (Cont’d)Each of the KPAs is defined by a set of key practices that contribute to satisfying its goals. The key practices are policies, procedures, and activities. Key indicators: those of key practices or components of key practices that offer the greatest insight into whether the goals of a key process have been achieved.


2.3 Software Process ModelsA software engineer must incorporate a development strategy that encompasses the process methods, and tools layers. This strategy is often referred to as a process model or a software engineering paradigm. A process model is chosen based on the nature of project and application, the methods and tools to be used, and the controls and deliverables that are required.


Process as Problem Solving


2.4 The Linear Sequential ModelSometimes called the classic life cycle or the waterfall model.


The Linear Sequential ModelActivities: System/information engineering and modeling Requirements gathering Interface with other elements: HW, SW, database Software requirement analysis Understand nature of SW to be built Function, behavior, performance and interface. Documented and reviewed with the customer


The Linear Sequential ModelDesign: A multi-step process focuses on data structure, SW architecture, interface representations, and procedural (algorithmic) detail. The design process translates requirements into a representation of the SW that can be assessed for quality before coding begins. Documented

Browse More Presentations

Last Updated: 8th March 2018

Recommended PPTs