0% found this document useful (0 votes)
5 views

Software Engineering 02

Uploaded by

janithadilsham
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

Software Engineering 02

Uploaded by

janithadilsham
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 36

Software Engineering: CSC1233

Activities and Characteristics


of Software Processes

Lecture 02

Dr. S.M. Vidanagamachchi

Department of Computer Science [email protected] 2022 1


CSC1233/COM3212 : Course Outline
• Introduction to Software Engineering
• Activities and Characteristics Software Processes
• Software Process Models 30 hours
• Requirement Analysis and Specification
• System Modeling

• Software Design (Design Principles and Architectural


Design) 15 hours
• Software Testing
• CASE tools
Department of Computer Science [email protected] 2022 2
• Software Maintenance and Metrics
Outline
• Software Process
• Generic View
• Layered Technology
• Umbrella Activities
• Project Assessment
– CMMI

Department of Computer Science [email protected] 2022 3


Learning Outcomes
At the end of this lecture, you should be able to:

• Describe Software Engineering process activities


• Explain different views of Software Engineering

Department of Computer Science [email protected] 2022 4


References

• Ian Sommerville, Software Engineering, 10th


Edition, Addison Wesley, 2016.

• R Pressman, Software Engineering - A


Practitioners Approach, 5th Edition, McGraw
Hill.

Department of Computer Science [email protected] 2022 5


The Software Process
• A structured set of activities required to develop a
software system
• Several different software processes, but all involve in
– Specification – defining what the system should do
– Development (Design and implementation)– defining the
organization of the system and implementing the system
– Validation – checking that it does what the customer wants
– Evolution – changing the system in response to changing
customer needs / market needs

Department of Computer Science [email protected] 2022 6


Software Specification
• Requirements engineering

• The process of understanding and defining what services


are required from the system and identifying the
constraints on the system’s operation and development

• Aims to produce an agreed requirements document that


specifies a system satisfying stake-holder requirements
– Customers and end-users
– System developers
– …? Department of Computer Science [email protected] 2022 7
Software Specification…

• Four main activities of requirements engineering


process

– Feasibility study
– Requirements elicitation and analysis
– Requirement specification
– Requirement validation

Department of Computer Science [email protected] 2022 8


Requirements Engineering Process

Department of Computer Science [email protected] 2022 9


Software Design and Implementation

• Software design: a description of the structure


of the software to be implemented the data
models and structures used by the system, the
interfaces between system components and,
sometimes, the algorithms used
• Software Implementation: translate this
designed structure into an executable program
– Code generation tools available
(https://www.youtube.com/watch?v=tY5Sw2YDVpI)
– Manual coding (https://www.youtube.com/watch?v=rtqQeYKHHNg)
– Reverse engineering
Department of Computer Science [email protected]
(https://www.youtube.com/watch?v=cJwB5qxYDuU) 2022 10
General Model of Software Design

Department of Computer Science [email protected] 2022 11


Software Validation
• Software validation and verification (V&V) is
intended to show that a system both conforms to
its specification and that it meets the
expectations of the system customer

• Validation vs Verification?

Department of Computer Science [email protected] 2022 12


Software Validation
• Validation: Are we building the right product?
Verification: Are we building the product right?

• The stages in the testing process:


– Unit testing
– Integration testing
– System testing
– Acceptance testing

Department of Computer Science [email protected] 2022 13


Software Evolution
• Changes can be made to software at any time during
or after the system development

• Even extensive changes are still much cheaper than


corresponding changes to system hardware

Department of Computer Science [email protected] 2022 14


Software Development Life Cycle

Department of Computer Science [email protected] 2022 15


DevOps
• DevOps practices can make the SDLC short

Department of Computer Science [email protected] 2022 16


Department of Computer Science [email protected] 2022 17
Exercise: DevOps
• Explore how DevOps practices help to shorten
the SDLC.

Department of Computer Science [email protected] 2022 18


Generic View
• The work associated with software engineering can
be categorized into three generic phases, regardless
of application area, project size, or complexity

– The definition phase focuses on what


– The development phase focuses on how
– The support phase focuses on change

Department of Computer Science [email protected] 2022 19


Three Phases of SW Development

Department of Computer Science [email protected] 2022 20


Exercise
• Briefly explain the following four types of
changes that can occur during support phase
of generic view
– Correction
– Adaptation
– Enhancement
– Prevention

Department of Computer Science [email protected] 2022 21


Layered Technology
• Software Engineering is a layered technology

• Most engineering approaches (including software


engineering) must rest on an organizational commitment to
quality

Department of Computer Science [email protected] 2022 22


Software Quality
• A product should meet its specification.
• Quality requirements (customer, developer, end-user):
– Efficiency
– Reliability
– Maintainability
– Reusability
– Usability

Group exercise: Group above quality requirements based on


above three perspectives (customer, developer and end user)

Department of Computer Science [email protected] 2022 23


Software Process
• The foundation for software engineering is the ‘process’
layer.
• Process is the glue that holds the technology together
and enables rational and timely development of
computer software.
• Within the process
– Work products are produced
– Milestones are established
– Quality is ensured
– Changes are properly managed
Department of Computer Science [email protected] 2022 24
Software Methods
• Methods contain a broad array of tasks
– Communication
– Requirement analysis
– Design modeling
– Program construction
– Testing and support

The technical how-to‘s for building software

Department of Computer Science [email protected] 2022 25


Software Tools
• Software engineering tools provide automated or semi-
automated supports for the process and the methods

• Tools are integrated so that the information created by one


tool can be used by another

• A system for the support of software development, called


computer-aided software engineering

When can you use CASE tools in the SW development


process?
Department of Computer Science [email protected] 2022 26
CASE
• Computer-Aided Software Engineering
• Software systems that are intended to provide automated
support for software process activities
• It covers a wide range of different types of programs that are
used to support software process
Examples :- requirements analysis,
system modeling,
debugging and testing

Department of Computer Science [email protected] 2022 27


Umbrella Activities
Not specific to any particular life cycle stage
• Software project tracking and control : progress, schedule
• Risk management : risks that affect the outcome/ product quality
• Formal technical reviews : remove errors
• Measurement (process/product)
• Software configuration management :manages the effect of change
• Reusability management: product reuse, reusable components
• Work product preparation and production: create documents, logs,
forms, lists and manuals

Department of Computer Science [email protected] 2022 28


Project Assessment
• Define models and methods to measure the quality of
software development processes/ entire organization

Examples:
• Capability Maturity Model (CMM) defined by the Software
Engineering Institute (SEI)
• Software Process Improvement and Capability
Determination (SPICE) defined by ISO/IEC15504

Department of Computer Science [email protected] 2022 29


CMMI
• One of the most well-known model developed by SEI

• CMMI is a descriptive model that details the essential


attributes that should characterize an organization at a given
maturity level

• Centered on standardizing the contents of processes


according to a predefined number of practices

• CMMI comes in two basic versions Staged and Continuous


Representation.
Department of Computer Science [email protected] 2022 30
Maturity Levels

Department of Computer Science [email protected] 2022 31


Maturity Levels..
• Maturity Level 1 – Initial
Processes are usually ad hoc and informal

• Maturity Level 2 – Managed


Organization has achieved all the specific and generic
goals

• Maturity Level 3 – Defined


Processes are well characterized and understood, and are
described in standards, procedures, tools, and methods.

Department of Computer Science [email protected] 2022 32


Maturity Levels..
• Maturity Level 4 - Quantitatively Managed
Sub processes are selected that significantly contribute to
overall process performance and those are controlled using
statistical and other quantitative techniques

• Maturity Level 5 – Optimizing


Processes are continually improved based on a quantitative
understanding of the common causes of variation inherent in
processes

Department of Computer Science [email protected] 2022 33


Exercise
• Explain four main activities of software specification.

• Explore on upper and lower CASE tools in Software


Engineering process.

Department of Computer Science [email protected] 2022 34


CMMI Versions…
Staged Representation Continuous Representation

Aimed towards assessing and improving Adapted towards assessing and


overall organizational maturity improving individual process areas

Enable organization to have predefined Give the freedom to select order of


and proven improvement path improvement that meets the
organization objectives
Focuses of set of process that provide an Enable increased visibility of the
organization with a specific capability capability achieve in each individual
that is characterized by each maturity process area
level

Summarize process improvement results Allow improvement of different


in a simple form-single maturity level processes at different rates
number Department of Computer Science [email protected] 2022 35
Thank you

Department of Computer Science [email protected] 2022 36

You might also like