SlideShare a Scribd company logo
Software Construction
Dr. Shaukat Ali
shaukat@icp.edu.pk
Course outline
• Module 1: Introduction to software construction
• Requirement engineering: structural and behavioral modeling using
state machines
• 1. Introduction to requirements modeling
• 2. Behavioral modeling
• 3. Communicating state machines
• Module 2: Languages, grammars and analyzers
• 1. Introduction to languages and compilers
• 2. Lexical analysis (formal languages, regular expressions and
accepting automata)
• 3. Syntax analysis
Software Processes
•A Software Process is
• A set of activities (e.g. requirements, analysis, design,
coding, testing) combined and sequenced in a particular
fashion to produce software
Software Development Phases
Requirements
What needs to be done
Analysis
How it should be done
Design
Create a software structure
(architecture) around which
code will be built
Coding
Fill in the software
structure with code
Testing
Check that the code does what
it is supposed to (functionality,
performance, reliability, …)
Project Management
Devise a plan, manage
resources, costs, time, …
Software Phases Related to this
Course
Design
Create a software structure
(architecture) around which
code will be built
Coding
Fill in the software
structure with code
Introduction
Definition of Software Construction:
Detailed creation of working, meaningful software through a combination of
coding, verification, unit testing, integration testing, and debugging
Software construction closely tied to
• Software design
• Software testing Design
Construction
Testing
Main Activities
• Managing Complexity: Programmed systems are always much more
complex than the corresponding design
• this involves approaches to coping with that complexity
oManaging Change: the environment changes and the platform and
components change regularly
o this involves developing systems that are resilient to anticipated change
oFacilitating Validation and Verification: the final code will be subject to test,
review, walkthroughs
o the structure of the code is an essential influence on ease of validation
oStandards Compliance : Important to ensure the capacity to interwork and
sometimes an essential to a product
Managing Complexity
oAvoid complexity: by forcing a redesign to remove the complexity
from the system
oAutomate complexity: use tools to carry out complex, error-prone,
tasks that are well understood, encapsulate complexity in
manageable components
oLocalize complexity : use structuring and hiding to contain complexity
inside manageable boundaries. Conceptual tools like coupling and
cohesion are useful in identifying and managing locality.
Managing Change
• Both the Environment changes and the platform and components
evolve
• (some systems just freeze the system and undertake limited maintenance).
• Main management approaches
• Attempt to generalize the interface to components so the component is
capable of easy adaptation
• Experiment to identify variability and likely directions for change in the
environment
• Exploit locality - attempt to generate designs with low coupling so change in
components and environments have limited impact on the overall system
Facilitating Validation
• There are a variety of ways of validating systems
• Approaches in the code can be helpful
• Manual inspection: comments, structure for reading, documentation
• Test: code structure to allow good unit test and sensible interfaces so that
integration test and the creation of “stubs” and “drivers” is easy
Complying with Standards
• Standards directly affect construction issues
• E.g. programming languages, communication methods, platforms, tools, etc.
• External standards are often crucial in determining the saleability of
products, e.g.:
• XML, CORBA, COM, DCOM, and so on in order to ensure interoperability
• Quality standards, e.g., Capability Maturity Model (CMM) or ISO 9001 can be
crucial in gaining contracts
• Internal standards contribute towards organization or project work
practice and knowledge
Reference
Chapter 4 of the SWEBOK on Software Construction

More Related Content

PPTX
The Design Phase
PPTX
Software Process Model (System Development Life Cycle)
PPTX
Attributes of 'well - engineered' software product
PPTX
Software Process Models
PPT
Se ii unit3-architectural-design
PPT
Advanced topics in software engineering
PPT
Architectural design1
PPT
Requirement Analysis - Software Enigneering
The Design Phase
Software Process Model (System Development Life Cycle)
Attributes of 'well - engineered' software product
Software Process Models
Se ii unit3-architectural-design
Advanced topics in software engineering
Architectural design1
Requirement Analysis - Software Enigneering

What's hot (19)

PDF
An Introduction to Software Architecture
PPT
Architectural design
ODP
Software Architecture
PPT
Lecture 1-intro-to-software-development
PPT
Lo 20
PPT
Lecture 1
PPT
Ch 11-component-level-design
PDF
Heuristics ofsoftwaretestability
PDF
1 modeling concepts
PPTX
Introduction to software engineering
PPTX
Saam
PDF
Software project management requirements analysis
PPTX
Software requirements specification
PPT
Software Engineering Lec 4-requirments
PPTX
Basics Of Software Engineering
PPTX
Testing throughout the software life cycle
PDF
Essential Software Architecture - Chapter 1 Understanding Software Architectu...
An Introduction to Software Architecture
Architectural design
Software Architecture
Lecture 1-intro-to-software-development
Lo 20
Lecture 1
Ch 11-component-level-design
Heuristics ofsoftwaretestability
1 modeling concepts
Introduction to software engineering
Saam
Software project management requirements analysis
Software requirements specification
Software Engineering Lec 4-requirments
Basics Of Software Engineering
Testing throughout the software life cycle
Essential Software Architecture - Chapter 1 Understanding Software Architectu...
Ad

Similar to Lecture 01 (20)

PPT
LECTURE 1 OF SOFTWARE CONSTRUCTION.ppt
PDF
Software Engineering with Objects (M363) Final Revision By Kuwait10
PDF
CS 123 Lecture 02 2023-2024.pdf take it s
PPTX
Software Design And Architecture Introduction
PPTX
SOFTWARE ENGINEERING FINAL PRESEBTATION.pptx
PPTX
CS8494 SOFTWARE ENGINEERING Unit-1
PPTX
Lecsfsfsfsfsfsfafsgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1.pptx
PPTX
Software engineer
PPTX
Unit_I.pptx
PPT
SE_Module1new.ppt
PPTX
Software Engineering Introduction -UNIT 1.pptx
PPTX
Software process
PDF
Se lec 3
PDF
Softweare Engieering
PPTX
Software--and--Software-Engineering.pptx
PPT
Softwareengineeringfundamentalssvetlinnakov 1233295163644547-1
PPT
SE2.ppt
PDF
Software Engineering 2nd Edition David C. Kung
PDF
Software Engineering 2nd Edition David C. Kung
PPTX
Software Engineering and Project Management
LECTURE 1 OF SOFTWARE CONSTRUCTION.ppt
Software Engineering with Objects (M363) Final Revision By Kuwait10
CS 123 Lecture 02 2023-2024.pdf take it s
Software Design And Architecture Introduction
SOFTWARE ENGINEERING FINAL PRESEBTATION.pptx
CS8494 SOFTWARE ENGINEERING Unit-1
Lecsfsfsfsfsfsfafsgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1.pptx
Software engineer
Unit_I.pptx
SE_Module1new.ppt
Software Engineering Introduction -UNIT 1.pptx
Software process
Se lec 3
Softweare Engieering
Software--and--Software-Engineering.pptx
Softwareengineeringfundamentalssvetlinnakov 1233295163644547-1
SE2.ppt
Software Engineering 2nd Edition David C. Kung
Software Engineering 2nd Edition David C. Kung
Software Engineering and Project Management
Ad

Recently uploaded (20)

PPTX
Transform Your Business with a Software ERP System
PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Understanding Forklifts - TECH EHS Solution
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Softaken Excel to vCard Converter Software.pdf
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PPTX
ISO 45001 Occupational Health and Safety Management System
PPTX
ai tools demonstartion for schools and inter college
PDF
Nekopoi APK 2025 free lastest update
PPTX
L1 - Introduction to python Backend.pptx
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
medical staffing services at VALiNTRY
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
Transform Your Business with a Software ERP System
CHAPTER 2 - PM Management and IT Context
Odoo POS Development Services by CandidRoot Solutions
Understanding Forklifts - TECH EHS Solution
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Softaken Excel to vCard Converter Software.pdf
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
ISO 45001 Occupational Health and Safety Management System
ai tools demonstartion for schools and inter college
Nekopoi APK 2025 free lastest update
L1 - Introduction to python Backend.pptx
How Creative Agencies Leverage Project Management Software.pdf
Which alternative to Crystal Reports is best for small or large businesses.pdf
Navsoft: AI-Powered Business Solutions & Custom Software Development
VVF-Customer-Presentation2025-Ver1.9.pptx
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
2025 Textile ERP Trends: SAP, Odoo & Oracle
medical staffing services at VALiNTRY
Upgrade and Innovation Strategies for SAP ERP Customers

Lecture 01

  • 1. Software Construction Dr. Shaukat Ali shaukat@icp.edu.pk
  • 2. Course outline • Module 1: Introduction to software construction • Requirement engineering: structural and behavioral modeling using state machines • 1. Introduction to requirements modeling • 2. Behavioral modeling • 3. Communicating state machines • Module 2: Languages, grammars and analyzers • 1. Introduction to languages and compilers • 2. Lexical analysis (formal languages, regular expressions and accepting automata) • 3. Syntax analysis
  • 3. Software Processes •A Software Process is • A set of activities (e.g. requirements, analysis, design, coding, testing) combined and sequenced in a particular fashion to produce software
  • 4. Software Development Phases Requirements What needs to be done Analysis How it should be done Design Create a software structure (architecture) around which code will be built Coding Fill in the software structure with code Testing Check that the code does what it is supposed to (functionality, performance, reliability, …) Project Management Devise a plan, manage resources, costs, time, …
  • 5. Software Phases Related to this Course Design Create a software structure (architecture) around which code will be built Coding Fill in the software structure with code
  • 6. Introduction Definition of Software Construction: Detailed creation of working, meaningful software through a combination of coding, verification, unit testing, integration testing, and debugging Software construction closely tied to • Software design • Software testing Design Construction Testing
  • 7. Main Activities • Managing Complexity: Programmed systems are always much more complex than the corresponding design • this involves approaches to coping with that complexity oManaging Change: the environment changes and the platform and components change regularly o this involves developing systems that are resilient to anticipated change oFacilitating Validation and Verification: the final code will be subject to test, review, walkthroughs o the structure of the code is an essential influence on ease of validation oStandards Compliance : Important to ensure the capacity to interwork and sometimes an essential to a product
  • 8. Managing Complexity oAvoid complexity: by forcing a redesign to remove the complexity from the system oAutomate complexity: use tools to carry out complex, error-prone, tasks that are well understood, encapsulate complexity in manageable components oLocalize complexity : use structuring and hiding to contain complexity inside manageable boundaries. Conceptual tools like coupling and cohesion are useful in identifying and managing locality.
  • 9. Managing Change • Both the Environment changes and the platform and components evolve • (some systems just freeze the system and undertake limited maintenance). • Main management approaches • Attempt to generalize the interface to components so the component is capable of easy adaptation • Experiment to identify variability and likely directions for change in the environment • Exploit locality - attempt to generate designs with low coupling so change in components and environments have limited impact on the overall system
  • 10. Facilitating Validation • There are a variety of ways of validating systems • Approaches in the code can be helpful • Manual inspection: comments, structure for reading, documentation • Test: code structure to allow good unit test and sensible interfaces so that integration test and the creation of “stubs” and “drivers” is easy
  • 11. Complying with Standards • Standards directly affect construction issues • E.g. programming languages, communication methods, platforms, tools, etc. • External standards are often crucial in determining the saleability of products, e.g.: • XML, CORBA, COM, DCOM, and so on in order to ensure interoperability • Quality standards, e.g., Capability Maturity Model (CMM) or ISO 9001 can be crucial in gaining contracts • Internal standards contribute towards organization or project work practice and knowledge
  • 12. Reference Chapter 4 of the SWEBOK on Software Construction