SlideShare uma empresa Scribd logo
1 de 27
3/19/2023 Software Construction 1
SOFTWARE CONSTRUCTION
LECTURE 1
Engr. Huma Ayub
huma.ayub@uettaxila.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
• Module 3: Concurrency, implementation design and performance issues
• 1. Concurrency
• 2 .Implementation design and performance issues
3/19/2023 Software Construction 2
Books (Reference Material )
• Code Complete - A Practical Handbook of Software Construction (2nd
Edition) [Steve McConnell] (2004)
• Object-Oriented Software Construction, by Bertrand Meyer, Second Edition,
Published by, Prentice Hall in 1997
•
• Formal Methods in computing by M. Ferenczi, and Andras Pataricza , Sep
2004
• Software Engineering by Ian Sommerville, 8th edition, Addison & Wesley.
2006
• Software engineering a practitioner’s approach by Roger S. Pressman
3/19/2023 Software Construction 3
3/19/2023 Software Construction 4
Grading Criteria
20% Mid Term
20% Quiz and Assignments
40% Final Exam
20% Lab Work
6
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, …
7
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
Software Construction 8
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
3/19/2023
Software Construction 9
Introduction - 2
More on Construction
• Significant detailed design occurs during construction
• Low-level (e.g. unit and module integration) testing occurs
during construction
• Construction produces high volume of configuration items
• Thus construction linked to configuration management
• Construction is tool intensive
• Quality (or lack thereof) is very evident in the construction
products
• Construction highly related to Computer Science due to
• Use of algorithms
• Detailed coding practices
3/19/2023
Software Construction 10
Introduction - 3
Software Construction Fundamentals
The fundamentals of software construction include:
• Minimizing complexity
• Anticipating change
• Constructing for verification
• Standards in construction
The following slides discuss each of these fundamentals
3/19/2023
Software Construction 11
Introduction - 4
Minimizing Complexity
• Humans are severely limited in our ability to hold complex
information in our working memories
• As a result, minimizing complexity is one the of strongest
drivers in software construction
• Need to reduce complexity throughout the lifecycle
• As functionality increases, so does complexity
• Accomplished through use of standards
• Examples:
• J2EE for complex, distributed Java applications
• UML for modeling all aspects of complex systems
• High-order programming languages such as C++ and
Java
• Source code formatting rules to aid readability
3/19/2023
Software Construction 12
Introduction - 5
Anticipating Change
• Software changes over time
• Anticipation / hope of change affect how software is
constructed
• This can effect
• Use of control structures
• Handling of errors
• Source code organization
• Code documentation
• Coding standards
3/19/2023
Software Construction 13
Introduction - 6
Constructing for Verification
Construct software that allows bugs to be easily found and fixed
Examples:
• Enforce coding standards
• Helps support code reviews
• Unit testing
• Organizing code to support automated testing
• Restricted use of complex or hard-to-understand language
structures
3/19/2023
Software Construction 14
Introduction - 7
Standards in Construction
Standards which directly affect construction issues include:
• Programming languages
• E.g. standards for languages like Java and C++
• Communication methods
• E.g. standards for document formats and contents
• Platforms
• E.g. programmer interface standards for operating
system calls, J2EE
• Tools
• E.g. diagrammatic standards for notations like the Unified
Modeling Language
3/19/2023
Software Construction 15
References
• [IE04] IEEE Computer Society, Guide to the Software
Engineering Body of Knowledge (SWEBOK), IEEE
Computer Society Press, Los Alamitos, CA 20001, June
2004
• link :
3/19/2023
Software Construction 16
A. Construction Planning
• What is Construction Planning?
Laying out the work plan (i.e. schedule) to design,
implement, debug, and unit test the software
• Construction planning major concerns:
• Coders are typically not planners
• Schedules will be difficult to maintain unless a good
architecture design is in place
• Many organizations to not collect project data on which to
plan future projects
• Many managers consider planning to be a waste of time
and therefore don’t encourage it
• Project plans may be limited to the construction plans
• Many organizations and projects do not use systematic
cost estimating methods such as models
3/19/2023
Software Construction 17
A. Construction Planning - 2
Improving Software Economics
• Consider reducing development costs by planning to:
• Reduce the size and/or complexity
• Improve the development process
• Use more highly skilled people and build better teams
• Use better tools
• Reduce quality thresholds
• Some actions include
• Use an object-oriented approach
• Use COTS components
• Use an iterative approach
• Provide training to development team
• Automate tedious tasks with tools
3/19/2023
Software Construction 18
A. Construction Planning - 3
Construction Prerequisites
• As with building construction, much of the success or failure
of the project already determined before construction begins
• Upstream activities such as project planning, requirements,
architecture, and design are crucial to success
• Typical high-risk areas
• Project planning
• Requirements
• Architecture
• Preparation is a way to reduce these risks
3/19/2023
Software Construction 19
A. Construction Planning - 4
Problem Definition Prerequisite
• The problem being solved via the application must be well
defined
• Common names for the document containing the problem
statement:
• Product Vision
• Vision Statement
• Product Definition
• Defines the problem without reference to potential solutions
• Helps avoid solving the wrong problem!
3/19/2023
Software Construction 20
A. Construction Planning - 5
Requirements Prerequisite
• Requirements describe in detail what a system is supposed
to do, therefore are invaluable for construction
• Explicit requirements:
• Help ensure the user drives system functionality
• Rather than the programmer
• Reduce the number of construction debates
• Help minimize changes after development begins
• Specifying requirements adequately (sufficiently) is a key to
project success
3/19/2023
Software Construction 21
A. Construction Planning - 6
Architecture Prerequisite
• Quality of the architecture determines the conceptual
integrity of the system
• A proper architecture:
• Gives structure to maintain conceptual integrity
• Provides guidance to programmers
• Partitions work
• Architecture-level problems are much more costly to fix than
are coding errors
• Good architecture can make construction easy
• Bad architecture makes construction difficult
3/19/2023
Software Construction 22
A. Construction Planning - 7
Regarding Upstream Prerequisites
• Time budgeted for requirements and architecture work
• 10 to 20 percent of manpower
• 20 to 30 percent of schedule
• If requirements are unstable
• Do not ignore, spend time to fix
• The analyst should fix if a formal project
• Can be fixed by the programmer for informal projects
• Use same heuristics for problems with the architecture
3/19/2023
Software Construction 23
A. Construction Planning - 8
Choose an Approach
• Many software development approaches have been tried
over the years
• Some examples (not mutually exclusive):
• Functional
• Object-Oriented
• Iterative
• Waterfall
• Agile
• Data-centric
• The construction team must follow some approach
• Chosen approach must be appropriate for the task at hand
3/19/2023
Software Construction 24
A. Construction Planning - 9
Choose a Programming Language
• Programming language choices affect
• Productivity
• Code quality
• Programmers more productive using a familiar language
• High-level languages provided higher quality and better
productivity
• Some languages better at expressing programming concepts
than others
• The ways in which a programmers express themselves are
affected by the chosen language
3/19/2023
Software Construction 25
A. Construction Planning - 10
Choose Construction Practices
• Questions to answer regarding practices:
• How detailed will the design be?
• What are the coding conventions for names, comments,
layout, etc.?
• How will the architecture be enforced?
• Is the project’s use of technology ahead of or behind the
power curve, and is this appropriate given the
circumstances?
• What is the integration procedure, how often is it done,
and who participates?
• Will developers program individually, in pairs, or some
combination of this?
• Where and when will builds occur?
3/19/2023
Software Construction 26
A. Construction Planning - 11
Choose Tools
Modern programming tools
• Are essential to maintain programmer productivity
• Reduce tedious and redundant tasks
• Must be appropriate for the task at hand
Tools preparation checklist:
• Are all product licenses current?
• Are all products at current, supported revision level?
• Have all programmers received proper training on the tools?
• Does the project have a configuration management tool?
• Does the project have a tool to track change requests?
• Do project team members have sufficient workstations?
• Does the project have sufficient test environments?
• Does the project have sufficient build environments?
3/19/2023
Software Construction 27
A. Construction Planning - 12
Construct the Team
• For small development efforts
• Self managed
• Everyone is a peer
• For mid-size development efforts
• Single team
• For large development efforts
• Multiple teams
Role # / Team*
Lead 1
Detailed designer 1 to 4
Coder 5 to 10
Integrator 1 to 2
Unit tester Same as coder
System tester 1
“Buildmeister” 1
Configuration manager 1
* Individuals will play multiple roles
Table 1: Team Composition
3/19/2023
Software Construction 28
A. References
• [IE04] IEEE Computer Society, Guide to the Software
Engineering Body of Knowledge (SWEBOK), IEEE
Computer Society Press, Los Alamitos, CA 20001, June
2004
• [RS04] IBM Rational Software, The Rational Unified
Process v2003.06.13, 2004
• [RT03]
• [SM04] S. McConnell, Code Complete: A Practical
Handbook of Software Construction, Second Edition,
Microsoft Press, 2004.
• [WR01] Walker Royce, Software Project Management, A
Unified Framework, Addison-Wesley, Boston, MA, 2001
3/19/2023

Mais conteúdo relacionado

Mais procurados

Intrusion detection system ppt
Intrusion detection system pptIntrusion detection system ppt
Intrusion detection system ppt
Sheetal Verma
 
Using JIRA & Greenhopper for Agile Development
Using JIRA & Greenhopper for Agile DevelopmentUsing JIRA & Greenhopper for Agile Development
Using JIRA & Greenhopper for Agile Development
Jeff Leyser
 
Agile software development and extreme Programming
Agile software development and extreme Programming  Agile software development and extreme Programming
Agile software development and extreme Programming
Fatemeh Karimi
 
Microsoft azure
Microsoft azureMicrosoft azure
Microsoft azure
Mohammad Ilyas Malik
 

Mais procurados (20)

Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Intrusion detection system ppt
Intrusion detection system pptIntrusion detection system ppt
Intrusion detection system ppt
 
Android application development ppt
Android application development pptAndroid application development ppt
Android application development ppt
 
CNIT 128 Ch 1: The mobile risk ecosystem
CNIT 128 Ch 1: The mobile risk ecosystemCNIT 128 Ch 1: The mobile risk ecosystem
CNIT 128 Ch 1: The mobile risk ecosystem
 
New Trends in software development
New Trends in software developmentNew Trends in software development
New Trends in software development
 
Using JIRA & Greenhopper for Agile Development
Using JIRA & Greenhopper for Agile DevelopmentUsing JIRA & Greenhopper for Agile Development
Using JIRA & Greenhopper for Agile Development
 
Low Code Platforms - Ebook
Low Code Platforms - EbookLow Code Platforms - Ebook
Low Code Platforms - Ebook
 
VTU Open Elective 6th Sem CSE - Module 2 - Cloud Computing
VTU Open Elective 6th Sem CSE - Module 2 - Cloud ComputingVTU Open Elective 6th Sem CSE - Module 2 - Cloud Computing
VTU Open Elective 6th Sem CSE - Module 2 - Cloud Computing
 
What is Rapid Application Development
What is Rapid Application DevelopmentWhat is Rapid Application Development
What is Rapid Application Development
 
Native vs. Hybrid Apps
Native vs. Hybrid AppsNative vs. Hybrid Apps
Native vs. Hybrid Apps
 
INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERING
 
Agile software development and extreme Programming
Agile software development and extreme Programming  Agile software development and extreme Programming
Agile software development and extreme Programming
 
Aneka platform
Aneka platformAneka platform
Aneka platform
 
Basic android-ppt
Basic android-pptBasic android-ppt
Basic android-ppt
 
Application Performance Monitoring (APM)
Application Performance Monitoring (APM)Application Performance Monitoring (APM)
Application Performance Monitoring (APM)
 
Applications Performance Monitoring with Applications Manager part 1
Applications Performance Monitoring with Applications Manager part 1Applications Performance Monitoring with Applications Manager part 1
Applications Performance Monitoring with Applications Manager part 1
 
MindSphere: The cloud-based, open IoT operating system. Damiano Manocchia
MindSphere: The cloud-based, open IoT operating system. Damiano ManocchiaMindSphere: The cloud-based, open IoT operating system. Damiano Manocchia
MindSphere: The cloud-based, open IoT operating system. Damiano Manocchia
 
Top 10 Mobile Application Testing Tools | Edureka
Top 10 Mobile Application Testing Tools | EdurekaTop 10 Mobile Application Testing Tools | Edureka
Top 10 Mobile Application Testing Tools | Edureka
 
Microsoft azure
Microsoft azureMicrosoft azure
Microsoft azure
 
An introduction to mobile app development and investing
An introduction to mobile app development and investingAn introduction to mobile app development and investing
An introduction to mobile app development and investing
 

Semelhante a LECTURE 1 OF SOFTWARE CONSTRUCTION.ppt

Agile methodology in cloud computing
Agile methodology in cloud computingAgile methodology in cloud computing
Agile methodology in cloud computing
Ahmed M. Abed
 
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
tubashaikh26
 

Semelhante a LECTURE 1 OF SOFTWARE CONSTRUCTION.ppt (20)

Lecture 1.pptx
Lecture 1.pptxLecture 1.pptx
Lecture 1.pptx
 
Lecture 1 - Requirement Engineering.pptx
Lecture 1 - Requirement Engineering.pptxLecture 1 - Requirement Engineering.pptx
Lecture 1 - Requirement Engineering.pptx
 
Ch01.ppt
Ch01.pptCh01.ppt
Ch01.ppt
 
The Software Engineering Discipline and Evolution of S/W Engineering Methodol...
The Software Engineering Discipline and Evolution of S/W Engineering Methodol...The Software Engineering Discipline and Evolution of S/W Engineering Methodol...
The Software Engineering Discipline and Evolution of S/W Engineering Methodol...
 
component based development model
component based development modelcomponent based development model
component based development model
 
Design Engineering and Design concepts
Design Engineering and Design conceptsDesign Engineering and Design concepts
Design Engineering and Design concepts
 
Project 1 & 2.pptx
Project 1 & 2.pptxProject 1 & 2.pptx
Project 1 & 2.pptx
 
Agile methodology in cloud computing
Agile methodology in cloud computingAgile methodology in cloud computing
Agile methodology in cloud computing
 
Student feedback system
Student feedback systemStudent feedback system
Student feedback system
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Lecture 1-intro-to-software-development
Lecture 1-intro-to-software-developmentLecture 1-intro-to-software-development
Lecture 1-intro-to-software-development
 
Pressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-models
 
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
 
Scope of software engineering
Scope of software engineeringScope of software engineering
Scope of software engineering
 
ppt_se.pdf
ppt_se.pdfppt_se.pdf
ppt_se.pdf
 
Spm1
Spm1Spm1
Spm1
 
Software project management
Software project managementSoftware project management
Software project management
 
Introduction to Software engineering ch03
Introduction to Software engineering ch03Introduction to Software engineering ch03
Introduction to Software engineering ch03
 
software engineering
software engineeringsoftware engineering
software engineering
 
Web design - Applications and web application definition
Web design - Applications and web application definitionWeb design - Applications and web application definition
Web design - Applications and web application definition
 

Último

Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 

Último (20)

%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 

LECTURE 1 OF SOFTWARE CONSTRUCTION.ppt

  • 1. 3/19/2023 Software Construction 1 SOFTWARE CONSTRUCTION LECTURE 1 Engr. Huma Ayub huma.ayub@uettaxila.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 • Module 3: Concurrency, implementation design and performance issues • 1. Concurrency • 2 .Implementation design and performance issues 3/19/2023 Software Construction 2
  • 3. Books (Reference Material ) • Code Complete - A Practical Handbook of Software Construction (2nd Edition) [Steve McConnell] (2004) • Object-Oriented Software Construction, by Bertrand Meyer, Second Edition, Published by, Prentice Hall in 1997 • • Formal Methods in computing by M. Ferenczi, and Andras Pataricza , Sep 2004 • Software Engineering by Ian Sommerville, 8th edition, Addison & Wesley. 2006 • Software engineering a practitioner’s approach by Roger S. Pressman 3/19/2023 Software Construction 3
  • 4. 3/19/2023 Software Construction 4 Grading Criteria 20% Mid Term 20% Quiz and Assignments 40% Final Exam 20% Lab Work
  • 5. 6 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, …
  • 6. 7 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
  • 7. Software Construction 8 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 3/19/2023
  • 8. Software Construction 9 Introduction - 2 More on Construction • Significant detailed design occurs during construction • Low-level (e.g. unit and module integration) testing occurs during construction • Construction produces high volume of configuration items • Thus construction linked to configuration management • Construction is tool intensive • Quality (or lack thereof) is very evident in the construction products • Construction highly related to Computer Science due to • Use of algorithms • Detailed coding practices 3/19/2023
  • 9. Software Construction 10 Introduction - 3 Software Construction Fundamentals The fundamentals of software construction include: • Minimizing complexity • Anticipating change • Constructing for verification • Standards in construction The following slides discuss each of these fundamentals 3/19/2023
  • 10. Software Construction 11 Introduction - 4 Minimizing Complexity • Humans are severely limited in our ability to hold complex information in our working memories • As a result, minimizing complexity is one the of strongest drivers in software construction • Need to reduce complexity throughout the lifecycle • As functionality increases, so does complexity • Accomplished through use of standards • Examples: • J2EE for complex, distributed Java applications • UML for modeling all aspects of complex systems • High-order programming languages such as C++ and Java • Source code formatting rules to aid readability 3/19/2023
  • 11. Software Construction 12 Introduction - 5 Anticipating Change • Software changes over time • Anticipation / hope of change affect how software is constructed • This can effect • Use of control structures • Handling of errors • Source code organization • Code documentation • Coding standards 3/19/2023
  • 12. Software Construction 13 Introduction - 6 Constructing for Verification Construct software that allows bugs to be easily found and fixed Examples: • Enforce coding standards • Helps support code reviews • Unit testing • Organizing code to support automated testing • Restricted use of complex or hard-to-understand language structures 3/19/2023
  • 13. Software Construction 14 Introduction - 7 Standards in Construction Standards which directly affect construction issues include: • Programming languages • E.g. standards for languages like Java and C++ • Communication methods • E.g. standards for document formats and contents • Platforms • E.g. programmer interface standards for operating system calls, J2EE • Tools • E.g. diagrammatic standards for notations like the Unified Modeling Language 3/19/2023
  • 14. Software Construction 15 References • [IE04] IEEE Computer Society, Guide to the Software Engineering Body of Knowledge (SWEBOK), IEEE Computer Society Press, Los Alamitos, CA 20001, June 2004 • link : 3/19/2023
  • 15. Software Construction 16 A. Construction Planning • What is Construction Planning? Laying out the work plan (i.e. schedule) to design, implement, debug, and unit test the software • Construction planning major concerns: • Coders are typically not planners • Schedules will be difficult to maintain unless a good architecture design is in place • Many organizations to not collect project data on which to plan future projects • Many managers consider planning to be a waste of time and therefore don’t encourage it • Project plans may be limited to the construction plans • Many organizations and projects do not use systematic cost estimating methods such as models 3/19/2023
  • 16. Software Construction 17 A. Construction Planning - 2 Improving Software Economics • Consider reducing development costs by planning to: • Reduce the size and/or complexity • Improve the development process • Use more highly skilled people and build better teams • Use better tools • Reduce quality thresholds • Some actions include • Use an object-oriented approach • Use COTS components • Use an iterative approach • Provide training to development team • Automate tedious tasks with tools 3/19/2023
  • 17. Software Construction 18 A. Construction Planning - 3 Construction Prerequisites • As with building construction, much of the success or failure of the project already determined before construction begins • Upstream activities such as project planning, requirements, architecture, and design are crucial to success • Typical high-risk areas • Project planning • Requirements • Architecture • Preparation is a way to reduce these risks 3/19/2023
  • 18. Software Construction 19 A. Construction Planning - 4 Problem Definition Prerequisite • The problem being solved via the application must be well defined • Common names for the document containing the problem statement: • Product Vision • Vision Statement • Product Definition • Defines the problem without reference to potential solutions • Helps avoid solving the wrong problem! 3/19/2023
  • 19. Software Construction 20 A. Construction Planning - 5 Requirements Prerequisite • Requirements describe in detail what a system is supposed to do, therefore are invaluable for construction • Explicit requirements: • Help ensure the user drives system functionality • Rather than the programmer • Reduce the number of construction debates • Help minimize changes after development begins • Specifying requirements adequately (sufficiently) is a key to project success 3/19/2023
  • 20. Software Construction 21 A. Construction Planning - 6 Architecture Prerequisite • Quality of the architecture determines the conceptual integrity of the system • A proper architecture: • Gives structure to maintain conceptual integrity • Provides guidance to programmers • Partitions work • Architecture-level problems are much more costly to fix than are coding errors • Good architecture can make construction easy • Bad architecture makes construction difficult 3/19/2023
  • 21. Software Construction 22 A. Construction Planning - 7 Regarding Upstream Prerequisites • Time budgeted for requirements and architecture work • 10 to 20 percent of manpower • 20 to 30 percent of schedule • If requirements are unstable • Do not ignore, spend time to fix • The analyst should fix if a formal project • Can be fixed by the programmer for informal projects • Use same heuristics for problems with the architecture 3/19/2023
  • 22. Software Construction 23 A. Construction Planning - 8 Choose an Approach • Many software development approaches have been tried over the years • Some examples (not mutually exclusive): • Functional • Object-Oriented • Iterative • Waterfall • Agile • Data-centric • The construction team must follow some approach • Chosen approach must be appropriate for the task at hand 3/19/2023
  • 23. Software Construction 24 A. Construction Planning - 9 Choose a Programming Language • Programming language choices affect • Productivity • Code quality • Programmers more productive using a familiar language • High-level languages provided higher quality and better productivity • Some languages better at expressing programming concepts than others • The ways in which a programmers express themselves are affected by the chosen language 3/19/2023
  • 24. Software Construction 25 A. Construction Planning - 10 Choose Construction Practices • Questions to answer regarding practices: • How detailed will the design be? • What are the coding conventions for names, comments, layout, etc.? • How will the architecture be enforced? • Is the project’s use of technology ahead of or behind the power curve, and is this appropriate given the circumstances? • What is the integration procedure, how often is it done, and who participates? • Will developers program individually, in pairs, or some combination of this? • Where and when will builds occur? 3/19/2023
  • 25. Software Construction 26 A. Construction Planning - 11 Choose Tools Modern programming tools • Are essential to maintain programmer productivity • Reduce tedious and redundant tasks • Must be appropriate for the task at hand Tools preparation checklist: • Are all product licenses current? • Are all products at current, supported revision level? • Have all programmers received proper training on the tools? • Does the project have a configuration management tool? • Does the project have a tool to track change requests? • Do project team members have sufficient workstations? • Does the project have sufficient test environments? • Does the project have sufficient build environments? 3/19/2023
  • 26. Software Construction 27 A. Construction Planning - 12 Construct the Team • For small development efforts • Self managed • Everyone is a peer • For mid-size development efforts • Single team • For large development efforts • Multiple teams Role # / Team* Lead 1 Detailed designer 1 to 4 Coder 5 to 10 Integrator 1 to 2 Unit tester Same as coder System tester 1 “Buildmeister” 1 Configuration manager 1 * Individuals will play multiple roles Table 1: Team Composition 3/19/2023
  • 27. Software Construction 28 A. References • [IE04] IEEE Computer Society, Guide to the Software Engineering Body of Knowledge (SWEBOK), IEEE Computer Society Press, Los Alamitos, CA 20001, June 2004 • [RS04] IBM Rational Software, The Rational Unified Process v2003.06.13, 2004 • [RT03] • [SM04] S. McConnell, Code Complete: A Practical Handbook of Software Construction, Second Edition, Microsoft Press, 2004. • [WR01] Walker Royce, Software Project Management, A Unified Framework, Addison-Wesley, Boston, MA, 2001 3/19/2023