狠狠撸

狠狠撸Share a Scribd company logo
Introduction to Software
Construction
Contents
? What is Software Construction
? Importance of Software Construction
? SWEBOK Guide (2004 Edition)
– Fundamentals of Software Construction
– Software Construction Management
? Key points of Software Construction
Software Construction
? Construction is the work “construction workers”
do when they build a house, a school, or a
skyscraper.
? In common usage, construction refers to the
process of building.
? The construction process might include some
aspects of planning, designing, and checking
the work, but mostly construction refers to the
hands-on part of creating something.
Software Construction
? Software construction is a software engineering
discipline.
? It is detailed creation of working, meaningful
software through a combination of coding,
verification, unit testing, integration testing, and
debugging.
Software Construction
? Following figure illustrates construction’s place
related to other software-development
activities.
Software Construction
? Some of the specific tasks involved in construction are:
– Verifying that the groundwork has been laid so that construction can
proceed successfully
– Determining how your code will be tested
– Designing and writing classes and routines
– Creating and naming variables and named constants
– Selecting control structures and organizing blocks of statements
– Unit testing, integration testing, and debugging your own code
– Reviewing other team members’ low-level designs and code and having
them review yours
– Polishing code by carefully formatting and commenting it
– Integrating software components that were created separately
– Tuning code to make it faster and use fewer resources
Software Construction
? Important non-construction activities include
– Management
– requirements development
– software architecture
– user-interface design
– system testing
– maintenance.
Software Construction
? Construction is also sometimes known as
“coding” or “programming.” Do you think both
these words correctly portray the term
construction?
Importance of Software Construction
? Software Construction is an important part of software
development because
– Construction is a large part of software development
– Construction is the central activity in software development
– With a focus on construction, the individual programmer’s
productivity can improve enormously
– Construction’s product, the source code, is often the only
accurate description of the software
– Construction is the only activity that’s guaranteed to be
done
SWEBOK Guide (2004 Edition)
? SWEBOK stands for Software Engineering
Body of Knowledge.
? The IEEE Computer Society has developed a
Guide to the Software Engineering Body of
Knowledge.
? The guide represents an extraction of all of the
generally accepted principles from the entire
body of knowledge.
SWEBOK Guide (2004 Edition)
? The Guide to the SWEBOK contains 10 knowledge areas.
– Software requirements
– Software design
– Software construction
– Software testing
– Software maintenance
– Software configuration management
– Software engineering management
– Software engineering process
– Software engineering tools and methods
– Software quality
SWEBOK Guide (2004 Edition)
? Software construction is a software engineering
discipline.
? It is the detailed creation of working meaningful
software through a combination of coding,
verification, unit testing, integration testing,
and debugging.
? It is linked to all the other software engineering
disciplines, most strongly to software design
and software testing.
SWEBOK Guide (2004 Edition)
? According to the SWEBOK CH#3, the basic
fundamentals of Software construction are
– Minimizing Complexity
– Anticipating Change
– Constructing for Verification
– Reuse
– Standards in Verification
Minimizing Complexity
? Humans are limited in their ability to hold complex structures
and information in their working memories, especially over
long periods of time.
? It proves to be a major factor influencing how people convey
intent to computers and leads to one of the strongest drives
in software construction: minimizing complexity.
? In software construction, reduced complexity is achieved
through emphasizing code creation that is simple and
readable.
? It is accomplished through making use of standards, modular
design and numerous other specific techniques
Anticipating Change
? Most software will change over time, and the
anticipation of change drives many aspects of
software construction.
? Changes in the environments in which software
operates also affect software in diverse ways.
? Anticipating change helps software engineers
build extensible software, which means they can
enhance a software product without disrupting
the underlying structure.
Anticipating Change
? Research over 25 years showed that the cost of
rework can be 10 to 100 times (5 to 10 times
for smaller projects) more expensive than
getting the requirements right the first time.
? Given that 25% of the requirements change
during development on average project, the
need to reduce the cost of rework elucidates
the need for anticipating change.
Constructing for Verification
? Constructing for verification means building software in
such a way that faults can be readily found by the
software engineers writing the software as well as by the
testers and users during independent testing and
operational activities.
? Specific techniques that support constructing for
verification include following coding standards to support
code reviews and unit testing, organizing code to support
automated testing, and restricting the use of complex or
hard-to-understand language structures, among others.
Reuse
? Reuse refers to using existing assets in solving
different problems.
? In software construction, typical assets that are
reused include libraries, modules, components, source
code, and commercial off-the-shelf (COTS) assets.
? Reuse is best practiced systematically, according to a
well-defined, repeatable process.
? Systematic reuse can enable significant software
productivity, quality, and cost improvements.
Reuse
? Reuse has two closely related facets
– construction for reuse
– construction with reuse
? The former means to create reusable software
assets, while the latter means to reuse software
assets in the construction of a new solution.
? Reuse often transcends the boundary of
projects, which means reused assets can be
constructed in other projects or organizations.
Standards in Construction
? Applying external or internal development standards during construction
helps achieve a project’s objectives for efficiency, quality, and cost.
? Choices of allowable programming language subsets and usage
standards are important aids in achieving higher security.
? Standards that directly affect construction issues include
– communication methods (for example, standards for document formats and
contents)
– programming languages (for example, language standards for languages like
Java and C++)
– coding standards (for example, standards for naming conventions, layout, and
indentation)
– platforms (for example, interface standards for operating system calls)
– tools (for example, diagrammatic standards for notations like UML (Unified
Modeling Language)).
Managing Construction
? According SWEBOK guide, software
construction is managed by following activities
– Construction Models
– Construction Planning
– Construction Management
Construction Models
? Numerous models have been created to develop software; some
emphasize construction more than others.
? Some models are more linear from the construction point of view
—such as the waterfall and staged-delivery life cycle models.
? These models treat construction as an activity that occurs only
after significant prerequisite work has been completed—including
detailed requirements work, extensive design work, and detailed
planning.
? The more linear approaches tend to emphasize the activities that
precede construction (requirements and design) and to create
more distinct separations between activities.
? In these models, the main emphasis of construction may be coding.
Construction Models
? Other models are more iterative such as
evolutionary, prototyping and agile development.
? These approaches tend to treat construction as
an activity that occurs concurrently with other
software development activities (including
requirements, design, and planning).
? These approaches tend to mix design, coding,
and testing activities, and they often treat the
combination of activities as construction.
Construction Planning
? The choice of construction method is a key
aspect of the construction-planning activity.
? The choice of construction method affects the
extent to which construction prerequisites are
performed, the order in which they are
performed, and the degree to which they
should be completed before construction
work begins.
Construction Planning
? Construction planning also defines
– the order in which components are created and
integrated
– the integration strategy
– the software quality management processes
– the allocation of task assignments to specific
software engineers according to the chosen
method.
Construction Measurement
? Numerous construction activities and artifacts
can be measured including code developed,
code modified, code reused, code destroyed,
code complexity, code inspection statistics, fault-
fix and fault-find rates, effort, and scheduling.
? These measurements can be useful for purposes
of managing construction, ensuring quality
during construction, and improving the
construction process
Practical Considerations
? Software construction is driven by many
practical considerations:
– Construction Design
– Construction Languages
– Coding
– Construction Testing
– Reuse
– Construction Quality
– Integration
Key Points
? Software construction is the central activity in
software development; construction is the only
activity that’s guaranteed to happen on every project.
? The main activities in construction are detailed design,
coding, debugging, integration, and developer testing
(unit testing and integration testing).
? Other common terms for construction are “coding”
and “programming.”
? The quality of the construction substantially affects the
quality of the software.
Readings
? [Chapter 1] Code Complete: A Practical
Handbook of Software Construction by Steve
McConnell, Microsoft Press; 2nd Edition (July
7, 2004). ISBN-10: 0735619670
? http://swebokwiki.org/
Chapter_3:_Software_Construction

More Related Content

Similar to Lecsfsfsfsfsfsfafsgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1.pptx (20)

software engineering
software engineeringsoftware engineering
software engineering
Azad public school
?
Kelis king - introduction to s.e.
Kelis king -  introduction to s.e.Kelis king -  introduction to s.e.
Kelis king - introduction to s.e.
KelisKing
?
Lecture 1.pptx
Lecture 1.pptxLecture 1.pptx
Lecture 1.pptx
UnknownPerson201264
?
Introduction to Software Engineering Notes.pptx
Introduction to Software Engineering Notes.pptxIntroduction to Software Engineering Notes.pptx
Introduction to Software Engineering Notes.pptx
bscit6
?
Project 1 & 2.pptx
Project 1 & 2.pptxProject 1 & 2.pptx
Project 1 & 2.pptx
OkianWarner
?
Software Development
Software DevelopmentSoftware Development
Software Development
Goutama Bachtiar
?
CHAPTER-I SOFTWARE DEVELOPMENT PROCESS.pdf
CHAPTER-I SOFTWARE DEVELOPMENT PROCESS.pdfCHAPTER-I SOFTWARE DEVELOPMENT PROCESS.pdf
CHAPTER-I SOFTWARE DEVELOPMENT PROCESS.pdf
pubgislive440
?
Scope of software engineering
Scope of software engineeringScope of software engineering
Scope of software engineering
Muhammad Naveed Zafar
?
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
tubashaikh26
?
process_models in Computer Software Enginnering
process_models in Computer Software Enginneringprocess_models in Computer Software Enginnering
process_models in Computer Software Enginnering
deshmukhrohit373
?
Introduction to Software engineering ch03
Introduction to Software engineering ch03Introduction to Software engineering ch03
Introduction to Software engineering ch03
YousefYassin5
?
Course Lecture 狠狠撸 about object oriented programming
Course Lecture 狠狠撸 about object oriented programmingCourse Lecture 狠狠撸 about object oriented programming
Course Lecture 狠狠撸 about object oriented programming
amare63
?
ppt_se.pdf
ppt_se.pdfppt_se.pdf
ppt_se.pdf
arpitlamba32599
?
Software Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptxSoftware Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptx
omgadekar25
?
Unit 1.pdf
Unit 1.pdfUnit 1.pdf
Unit 1.pdf
dsffdfddv
?
Softwareengineeringfundamentalssvetlinnakov 1233295163644547-1
Softwareengineeringfundamentalssvetlinnakov 1233295163644547-1Softwareengineeringfundamentalssvetlinnakov 1233295163644547-1
Softwareengineeringfundamentalssvetlinnakov 1233295163644547-1
gururguru01
?
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptxUNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
LeahRachael
?
Intoduction to software engineering part 2
Intoduction to software engineering part 2Intoduction to software engineering part 2
Intoduction to software engineering part 2
Rupesh Vaishnav
?
Software Development Methodologies.pptx
Software Development Methodologies.pptxSoftware Development Methodologies.pptx
Software Development Methodologies.pptx
MohamedElshaikh10
?
Unit 1 OOSE
Unit 1 OOSEUnit 1 OOSE
Unit 1 OOSE
saranive23
?
Kelis king - introduction to s.e.
Kelis king -  introduction to s.e.Kelis king -  introduction to s.e.
Kelis king - introduction to s.e.
KelisKing
?
Introduction to Software Engineering Notes.pptx
Introduction to Software Engineering Notes.pptxIntroduction to Software Engineering Notes.pptx
Introduction to Software Engineering Notes.pptx
bscit6
?
CHAPTER-I SOFTWARE DEVELOPMENT PROCESS.pdf
CHAPTER-I SOFTWARE DEVELOPMENT PROCESS.pdfCHAPTER-I SOFTWARE DEVELOPMENT PROCESS.pdf
CHAPTER-I SOFTWARE DEVELOPMENT PROCESS.pdf
pubgislive440
?
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
tubashaikh26
?
process_models in Computer Software Enginnering
process_models in Computer Software Enginneringprocess_models in Computer Software Enginnering
process_models in Computer Software Enginnering
deshmukhrohit373
?
Introduction to Software engineering ch03
Introduction to Software engineering ch03Introduction to Software engineering ch03
Introduction to Software engineering ch03
YousefYassin5
?
Course Lecture 狠狠撸 about object oriented programming
Course Lecture 狠狠撸 about object oriented programmingCourse Lecture 狠狠撸 about object oriented programming
Course Lecture 狠狠撸 about object oriented programming
amare63
?
Software Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptxSoftware Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptx
omgadekar25
?
Softwareengineeringfundamentalssvetlinnakov 1233295163644547-1
Softwareengineeringfundamentalssvetlinnakov 1233295163644547-1Softwareengineeringfundamentalssvetlinnakov 1233295163644547-1
Softwareengineeringfundamentalssvetlinnakov 1233295163644547-1
gururguru01
?
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptxUNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
LeahRachael
?
Intoduction to software engineering part 2
Intoduction to software engineering part 2Intoduction to software engineering part 2
Intoduction to software engineering part 2
Rupesh Vaishnav
?
Software Development Methodologies.pptx
Software Development Methodologies.pptxSoftware Development Methodologies.pptx
Software Development Methodologies.pptx
MohamedElshaikh10
?

Recently uploaded (20)

ckjsnvljsnlndmclsdclmvmc dlmvkvme;mve;lm;dfmv.pptx
ckjsnvljsnlndmclsdclmvmc dlmvkvme;mve;lm;dfmv.pptxckjsnvljsnlndmclsdclmvmc dlmvkvme;mve;lm;dfmv.pptx
ckjsnvljsnlndmclsdclmvmc dlmvkvme;mve;lm;dfmv.pptx
YashGarg172704
?
safe food for healthy tomorrow in our daily life
safe food for healthy tomorrow in our daily lifesafe food for healthy tomorrow in our daily life
safe food for healthy tomorrow in our daily life
dishanig74
?
17405924088_nvb n vbn vbn Kushomi Dey.pdf
17405924088_nvb n vbn vbn Kushomi Dey.pdf17405924088_nvb n vbn vbn Kushomi Dey.pdf
17405924088_nvb n vbn vbn Kushomi Dey.pdf
pharmchemistry2021
?
原版复刻加拿大卡普顿大学成绩单(CBU毕业证书) 文凭
原版复刻加拿大卡普顿大学成绩单(CBU毕业证书) 文凭原版复刻加拿大卡普顿大学成绩单(CBU毕业证书) 文凭
原版复刻加拿大卡普顿大学成绩单(CBU毕业证书) 文凭
taqyed
?
加拿大毕业证(顿补飞蝉辞苍成绩单)道森学院毕业证如何办理
加拿大毕业证(顿补飞蝉辞苍成绩单)道森学院毕业证如何办理加拿大毕业证(顿补飞蝉辞苍成绩单)道森学院毕业证如何办理
加拿大毕业证(顿补飞蝉辞苍成绩单)道森学院毕业证如何办理
taqyed
?
todo lo relacionado con acreditacion para el rubro del agua ppt
todo lo relacionado con acreditacion para el rubro del agua ppttodo lo relacionado con acreditacion para el rubro del agua ppt
todo lo relacionado con acreditacion para el rubro del agua ppt
alexvelasquez65
?
VERTICAL FARMING: A WAY TOWARDS SMART & SUSTAINABLE URBAN AGRICULTURE
VERTICAL FARMING: A WAY TOWARDS SMART & SUSTAINABLE URBAN AGRICULTUREVERTICAL FARMING: A WAY TOWARDS SMART & SUSTAINABLE URBAN AGRICULTURE
VERTICAL FARMING: A WAY TOWARDS SMART & SUSTAINABLE URBAN AGRICULTURE
indexPub
?
ch??ng 2.pdfergwg45tg45e4eefefe5fgddddddffgg
ch??ng 2.pdfergwg45tg45e4eefefe5fgddddddffggch??ng 2.pdfergwg45tg45e4eefefe5fgddddddffgg
ch??ng 2.pdfergwg45tg45e4eefefe5fgddddddffgg
2353801012197
?
Grade 10 TLE Learning Outcome 4: Store Meat
Grade 10 TLE Learning Outcome 4: Store MeatGrade 10 TLE Learning Outcome 4: Store Meat
Grade 10 TLE Learning Outcome 4: Store Meat
jonalyncruz11
?
Energy Efficient Food Waste Management
Energy Efficient Food Waste Management   Energy Efficient Food Waste Management
Energy Efficient Food Waste Management
Dr. Salem Baidas
?
Eco Friendly Food Waste Management
Eco Friendly Food Waste Management   Eco Friendly Food Waste Management
Eco Friendly Food Waste Management
Dr. Salem Baidas
?
Sauce Warmer - Fresproequip.com
Sauce Warmer -          Fresproequip.comSauce Warmer -          Fresproequip.com
Sauce Warmer - Fresproequip.com
frespro equip
?
Revolutionizing the B2B Platform for the Italian Food & Beverage Industry.pdf
Revolutionizing the B2B Platform for the Italian Food & Beverage Industry.pdfRevolutionizing the B2B Platform for the Italian Food & Beverage Industry.pdf
Revolutionizing the B2B Platform for the Italian Food & Beverage Industry.pdf
Alysei
?
Анализ на Интелиагро върху оранжерийното производство
Анализ на Интелиагро върху оранжерийното производствоАнализ на Интелиагро върху оранжерийното производство
Анализ на Интелиагро върху оранжерийното производство
bILIANA PANCHEVA
?
加拿大成绩单购买原版(顿辞耻驳濒补蝉毕业证书)道格拉斯学院毕业证文凭
加拿大成绩单购买原版(顿辞耻驳濒补蝉毕业证书)道格拉斯学院毕业证文凭加拿大成绩单购买原版(顿辞耻驳濒补蝉毕业证书)道格拉斯学院毕业证文凭
加拿大成绩单购买原版(顿辞耻驳濒补蝉毕业证书)道格拉斯学院毕业证文凭
taqyed
?
title for a food non food presentation is this
title for a food non food presentation is thistitle for a food non food presentation is this
title for a food non food presentation is this
Ritul17
?
Ang Chong Yi Singapore: Honoring India’s Sweet Heritage Through Generations
Ang Chong Yi Singapore: Honoring India’s Sweet Heritage Through GenerationsAng Chong Yi Singapore: Honoring India’s Sweet Heritage Through Generations
Ang Chong Yi Singapore: Honoring India’s Sweet Heritage Through Generations
Ang Chong Yi
?
ndsjlkfnjsdahfoihaiodfnsdknfoisjdiofsdfnosidfnoisd
ndsjlkfnjsdahfoihaiodfnsdknfoisjdiofsdfnosidfnoisdndsjlkfnjsdahfoihaiodfnsdknfoisjdiofsdfnosidfnoisd
ndsjlkfnjsdahfoihaiodfnsdknfoisjdiofsdfnosidfnoisd
Saravanan Sekaran
?
zomato brief descriptions powerpoint (1).pptx
zomato brief descriptions powerpoint  (1).pptxzomato brief descriptions powerpoint  (1).pptx
zomato brief descriptions powerpoint (1).pptx
vartikajaiswal753
?
Sustainability and Food Production
Sustainability and Food Production        Sustainability and Food Production
Sustainability and Food Production
Dr. Salem Baidas
?
ckjsnvljsnlndmclsdclmvmc dlmvkvme;mve;lm;dfmv.pptx
ckjsnvljsnlndmclsdclmvmc dlmvkvme;mve;lm;dfmv.pptxckjsnvljsnlndmclsdclmvmc dlmvkvme;mve;lm;dfmv.pptx
ckjsnvljsnlndmclsdclmvmc dlmvkvme;mve;lm;dfmv.pptx
YashGarg172704
?
safe food for healthy tomorrow in our daily life
safe food for healthy tomorrow in our daily lifesafe food for healthy tomorrow in our daily life
safe food for healthy tomorrow in our daily life
dishanig74
?
17405924088_nvb n vbn vbn Kushomi Dey.pdf
17405924088_nvb n vbn vbn Kushomi Dey.pdf17405924088_nvb n vbn vbn Kushomi Dey.pdf
17405924088_nvb n vbn vbn Kushomi Dey.pdf
pharmchemistry2021
?
原版复刻加拿大卡普顿大学成绩单(CBU毕业证书) 文凭
原版复刻加拿大卡普顿大学成绩单(CBU毕业证书) 文凭原版复刻加拿大卡普顿大学成绩单(CBU毕业证书) 文凭
原版复刻加拿大卡普顿大学成绩单(CBU毕业证书) 文凭
taqyed
?
加拿大毕业证(顿补飞蝉辞苍成绩单)道森学院毕业证如何办理
加拿大毕业证(顿补飞蝉辞苍成绩单)道森学院毕业证如何办理加拿大毕业证(顿补飞蝉辞苍成绩单)道森学院毕业证如何办理
加拿大毕业证(顿补飞蝉辞苍成绩单)道森学院毕业证如何办理
taqyed
?
todo lo relacionado con acreditacion para el rubro del agua ppt
todo lo relacionado con acreditacion para el rubro del agua ppttodo lo relacionado con acreditacion para el rubro del agua ppt
todo lo relacionado con acreditacion para el rubro del agua ppt
alexvelasquez65
?
VERTICAL FARMING: A WAY TOWARDS SMART & SUSTAINABLE URBAN AGRICULTURE
VERTICAL FARMING: A WAY TOWARDS SMART & SUSTAINABLE URBAN AGRICULTUREVERTICAL FARMING: A WAY TOWARDS SMART & SUSTAINABLE URBAN AGRICULTURE
VERTICAL FARMING: A WAY TOWARDS SMART & SUSTAINABLE URBAN AGRICULTURE
indexPub
?
ch??ng 2.pdfergwg45tg45e4eefefe5fgddddddffgg
ch??ng 2.pdfergwg45tg45e4eefefe5fgddddddffggch??ng 2.pdfergwg45tg45e4eefefe5fgddddddffgg
ch??ng 2.pdfergwg45tg45e4eefefe5fgddddddffgg
2353801012197
?
Grade 10 TLE Learning Outcome 4: Store Meat
Grade 10 TLE Learning Outcome 4: Store MeatGrade 10 TLE Learning Outcome 4: Store Meat
Grade 10 TLE Learning Outcome 4: Store Meat
jonalyncruz11
?
Energy Efficient Food Waste Management
Energy Efficient Food Waste Management   Energy Efficient Food Waste Management
Energy Efficient Food Waste Management
Dr. Salem Baidas
?
Eco Friendly Food Waste Management
Eco Friendly Food Waste Management   Eco Friendly Food Waste Management
Eco Friendly Food Waste Management
Dr. Salem Baidas
?
Sauce Warmer - Fresproequip.com
Sauce Warmer -          Fresproequip.comSauce Warmer -          Fresproequip.com
Sauce Warmer - Fresproequip.com
frespro equip
?
Revolutionizing the B2B Platform for the Italian Food & Beverage Industry.pdf
Revolutionizing the B2B Platform for the Italian Food & Beverage Industry.pdfRevolutionizing the B2B Platform for the Italian Food & Beverage Industry.pdf
Revolutionizing the B2B Platform for the Italian Food & Beverage Industry.pdf
Alysei
?
Анализ на Интелиагро върху оранжерийното производство
Анализ на Интелиагро върху оранжерийното производствоАнализ на Интелиагро върху оранжерийното производство
Анализ на Интелиагро върху оранжерийното производство
bILIANA PANCHEVA
?
加拿大成绩单购买原版(顿辞耻驳濒补蝉毕业证书)道格拉斯学院毕业证文凭
加拿大成绩单购买原版(顿辞耻驳濒补蝉毕业证书)道格拉斯学院毕业证文凭加拿大成绩单购买原版(顿辞耻驳濒补蝉毕业证书)道格拉斯学院毕业证文凭
加拿大成绩单购买原版(顿辞耻驳濒补蝉毕业证书)道格拉斯学院毕业证文凭
taqyed
?
title for a food non food presentation is this
title for a food non food presentation is thistitle for a food non food presentation is this
title for a food non food presentation is this
Ritul17
?
Ang Chong Yi Singapore: Honoring India’s Sweet Heritage Through Generations
Ang Chong Yi Singapore: Honoring India’s Sweet Heritage Through GenerationsAng Chong Yi Singapore: Honoring India’s Sweet Heritage Through Generations
Ang Chong Yi Singapore: Honoring India’s Sweet Heritage Through Generations
Ang Chong Yi
?
ndsjlkfnjsdahfoihaiodfnsdknfoisjdiofsdfnosidfnoisd
ndsjlkfnjsdahfoihaiodfnsdknfoisjdiofsdfnosidfnoisdndsjlkfnjsdahfoihaiodfnsdknfoisjdiofsdfnosidfnoisd
ndsjlkfnjsdahfoihaiodfnsdknfoisjdiofsdfnosidfnoisd
Saravanan Sekaran
?
zomato brief descriptions powerpoint (1).pptx
zomato brief descriptions powerpoint  (1).pptxzomato brief descriptions powerpoint  (1).pptx
zomato brief descriptions powerpoint (1).pptx
vartikajaiswal753
?
Sustainability and Food Production
Sustainability and Food Production        Sustainability and Food Production
Sustainability and Food Production
Dr. Salem Baidas
?

Lecsfsfsfsfsfsfafsgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1.pptx

  • 2. Contents ? What is Software Construction ? Importance of Software Construction ? SWEBOK Guide (2004 Edition) – Fundamentals of Software Construction – Software Construction Management ? Key points of Software Construction
  • 3. Software Construction ? Construction is the work “construction workers” do when they build a house, a school, or a skyscraper. ? In common usage, construction refers to the process of building. ? The construction process might include some aspects of planning, designing, and checking the work, but mostly construction refers to the hands-on part of creating something.
  • 4. Software Construction ? Software construction is a software engineering discipline. ? It is detailed creation of working, meaningful software through a combination of coding, verification, unit testing, integration testing, and debugging.
  • 5. Software Construction ? Following figure illustrates construction’s place related to other software-development activities.
  • 6. Software Construction ? Some of the specific tasks involved in construction are: – Verifying that the groundwork has been laid so that construction can proceed successfully – Determining how your code will be tested – Designing and writing classes and routines – Creating and naming variables and named constants – Selecting control structures and organizing blocks of statements – Unit testing, integration testing, and debugging your own code – Reviewing other team members’ low-level designs and code and having them review yours – Polishing code by carefully formatting and commenting it – Integrating software components that were created separately – Tuning code to make it faster and use fewer resources
  • 7. Software Construction ? Important non-construction activities include – Management – requirements development – software architecture – user-interface design – system testing – maintenance.
  • 8. Software Construction ? Construction is also sometimes known as “coding” or “programming.” Do you think both these words correctly portray the term construction?
  • 9. Importance of Software Construction ? Software Construction is an important part of software development because – Construction is a large part of software development – Construction is the central activity in software development – With a focus on construction, the individual programmer’s productivity can improve enormously – Construction’s product, the source code, is often the only accurate description of the software – Construction is the only activity that’s guaranteed to be done
  • 10. SWEBOK Guide (2004 Edition) ? SWEBOK stands for Software Engineering Body of Knowledge. ? The IEEE Computer Society has developed a Guide to the Software Engineering Body of Knowledge. ? The guide represents an extraction of all of the generally accepted principles from the entire body of knowledge.
  • 11. SWEBOK Guide (2004 Edition) ? The Guide to the SWEBOK contains 10 knowledge areas. – Software requirements – Software design – Software construction – Software testing – Software maintenance – Software configuration management – Software engineering management – Software engineering process – Software engineering tools and methods – Software quality
  • 12. SWEBOK Guide (2004 Edition) ? Software construction is a software engineering discipline. ? It is the detailed creation of working meaningful software through a combination of coding, verification, unit testing, integration testing, and debugging. ? It is linked to all the other software engineering disciplines, most strongly to software design and software testing.
  • 13. SWEBOK Guide (2004 Edition) ? According to the SWEBOK CH#3, the basic fundamentals of Software construction are – Minimizing Complexity – Anticipating Change – Constructing for Verification – Reuse – Standards in Verification
  • 14. Minimizing Complexity ? Humans are limited in their ability to hold complex structures and information in their working memories, especially over long periods of time. ? It proves to be a major factor influencing how people convey intent to computers and leads to one of the strongest drives in software construction: minimizing complexity. ? In software construction, reduced complexity is achieved through emphasizing code creation that is simple and readable. ? It is accomplished through making use of standards, modular design and numerous other specific techniques
  • 15. Anticipating Change ? Most software will change over time, and the anticipation of change drives many aspects of software construction. ? Changes in the environments in which software operates also affect software in diverse ways. ? Anticipating change helps software engineers build extensible software, which means they can enhance a software product without disrupting the underlying structure.
  • 16. Anticipating Change ? Research over 25 years showed that the cost of rework can be 10 to 100 times (5 to 10 times for smaller projects) more expensive than getting the requirements right the first time. ? Given that 25% of the requirements change during development on average project, the need to reduce the cost of rework elucidates the need for anticipating change.
  • 17. Constructing for Verification ? Constructing for verification means building software in such a way that faults can be readily found by the software engineers writing the software as well as by the testers and users during independent testing and operational activities. ? Specific techniques that support constructing for verification include following coding standards to support code reviews and unit testing, organizing code to support automated testing, and restricting the use of complex or hard-to-understand language structures, among others.
  • 18. Reuse ? Reuse refers to using existing assets in solving different problems. ? In software construction, typical assets that are reused include libraries, modules, components, source code, and commercial off-the-shelf (COTS) assets. ? Reuse is best practiced systematically, according to a well-defined, repeatable process. ? Systematic reuse can enable significant software productivity, quality, and cost improvements.
  • 19. Reuse ? Reuse has two closely related facets – construction for reuse – construction with reuse ? The former means to create reusable software assets, while the latter means to reuse software assets in the construction of a new solution. ? Reuse often transcends the boundary of projects, which means reused assets can be constructed in other projects or organizations.
  • 20. Standards in Construction ? Applying external or internal development standards during construction helps achieve a project’s objectives for efficiency, quality, and cost. ? Choices of allowable programming language subsets and usage standards are important aids in achieving higher security. ? Standards that directly affect construction issues include – communication methods (for example, standards for document formats and contents) – programming languages (for example, language standards for languages like Java and C++) – coding standards (for example, standards for naming conventions, layout, and indentation) – platforms (for example, interface standards for operating system calls) – tools (for example, diagrammatic standards for notations like UML (Unified Modeling Language)).
  • 21. Managing Construction ? According SWEBOK guide, software construction is managed by following activities – Construction Models – Construction Planning – Construction Management
  • 22. Construction Models ? Numerous models have been created to develop software; some emphasize construction more than others. ? Some models are more linear from the construction point of view —such as the waterfall and staged-delivery life cycle models. ? These models treat construction as an activity that occurs only after significant prerequisite work has been completed—including detailed requirements work, extensive design work, and detailed planning. ? The more linear approaches tend to emphasize the activities that precede construction (requirements and design) and to create more distinct separations between activities. ? In these models, the main emphasis of construction may be coding.
  • 23. Construction Models ? Other models are more iterative such as evolutionary, prototyping and agile development. ? These approaches tend to treat construction as an activity that occurs concurrently with other software development activities (including requirements, design, and planning). ? These approaches tend to mix design, coding, and testing activities, and they often treat the combination of activities as construction.
  • 24. Construction Planning ? The choice of construction method is a key aspect of the construction-planning activity. ? The choice of construction method affects the extent to which construction prerequisites are performed, the order in which they are performed, and the degree to which they should be completed before construction work begins.
  • 25. Construction Planning ? Construction planning also defines – the order in which components are created and integrated – the integration strategy – the software quality management processes – the allocation of task assignments to specific software engineers according to the chosen method.
  • 26. Construction Measurement ? Numerous construction activities and artifacts can be measured including code developed, code modified, code reused, code destroyed, code complexity, code inspection statistics, fault- fix and fault-find rates, effort, and scheduling. ? These measurements can be useful for purposes of managing construction, ensuring quality during construction, and improving the construction process
  • 27. Practical Considerations ? Software construction is driven by many practical considerations: – Construction Design – Construction Languages – Coding – Construction Testing – Reuse – Construction Quality – Integration
  • 28. Key Points ? Software construction is the central activity in software development; construction is the only activity that’s guaranteed to happen on every project. ? The main activities in construction are detailed design, coding, debugging, integration, and developer testing (unit testing and integration testing). ? Other common terms for construction are “coding” and “programming.” ? The quality of the construction substantially affects the quality of the software.
  • 29. Readings ? [Chapter 1] Code Complete: A Practical Handbook of Software Construction by Steve McConnell, Microsoft Press; 2nd Edition (July 7, 2004). ISBN-10: 0735619670 ? http://swebokwiki.org/ Chapter_3:_Software_Construction