0% found this document useful (0 votes)
22 views24 pages

Lec#1

Uploaded by

daniaarshad19
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views24 pages

Lec#1

Uploaded by

daniaarshad19
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 24

LECTURE NO: 01

Software Construction
and Development
BY : DR. AISHA BATOOL
Email: aisha@ciitwah.edu.pk

COMSATS University Islamabad, Wah Campus


Course Outline

COMSATS University Islamabad, Wah Campus


Grading Criteria

25% Mid Term


15% Quiz
10%
Assignments
50% Final Exam

COMSATS University Islamabad, Wah Campus


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

 Recent trend: Agile Software Development


 Customer needs evolve with time
 Satisfying customers at delivery time (rather than at project initiation) is more important
than conforming to initial customer requirements

COMSATS University Islamabad, Wah Campus


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 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

COMSATS University Islamabad, Wah Campus


Software Development Phases
Requirements
What needs to be done

Testing
Check that the code does what Analysis
it is supposed to (functionality, How it should be done
performance, reliability, …) Project Management
Devise a plan, manage
resources, costs, time, …

Design
Coding Create a software structure
Fill in the software (architecture) around which
structure with code code will be built

6
Software Phases Related to Software Construction

Testing
Check that the code does what
it is supposed to (functionality,
performance, reliability, …)

Design
Create a software structure
Coding (architecture) around which
Fill in the software code will be built
structure with code

COMSATS University Islamabad, Wah Campus


Software Construction
Important non-construction activities include
 Management
 Requirements development
 Software architecture
 User-interface design
 System testing
 Maintenance

COMSATS University Islamabad, Wah Campus


Software Construction
 Software construction is a fundamental aspect of software engineering.
 It involves the creation of functional software through coding, validation, and testing by
programmers.
 Contrary to a simple translation of design into software, it delves into complex issues of
software engineering.
 The process requires a meaningful dialogue between humans and computers, bridging the
gap between human intent and computer execution.
 Each side contributes unique capabilities: computers offer reliability and speed, while humans
bring creativity and problem-solving skills.

COMSATS University Islamabad, Wah Campus


Software Construction
 Key aspects of Software Construction
 Software construction entails a dialogue between humans and computers.
 Humans must be logical, precise, and thorough in expressing their intentions.
 Computers, despite their limitations, provide reliability and speed in executing tasks.
 The symbiotic relationship between humans and computers in software construction results
in the creation of meaningful and functional software.
 Successful software construction requires a balance between human creativity and computer
precision.

COMSATS University Islamabad, Wah Campus


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

COMSATS University Islamabad, Wah Campus


Significance of Software Construction
 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

COMSATS University Islamabad, Wah Campus


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.

COMSATS University Islamabad, Wah Campus


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

COMSATS University Islamabad, Wah Campus


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.

COMSATS University Islamabad, Wah Campus


Software Construction’s Links to other
Knowledge Areas.
Software Construction and Software Design
 Software design and construction are closely intertwined processes in software engineering.
 Design analyzes requirements and structures the system, setting the stage for construction.
 Construction begins when the design breaks down the problem into manageable parts.
 The distinction between design and construction is often blurred, influenced by project scale
and complexity.
 Both activities require sophisticated problem-solving skills, with design focusing on
partitioning and construction on solution implementation.
 Automation of well-defined construction tasks allows engineers to tackle more complex
challenges effectively.

COMSATS University Islamabad, Wah Campus


Software Construction’s Links to other
Knowledge Areas.
The Relationship between Tools and Software Construction
 In software engineering, tools are hardware or software devices supporting various processes.
 An effective tool significantly improves productivity and/or quality.
 Software construction tools are software-based tools used primarily within the construction
process.
 Examples include compilers, version control systems, debuggers, code generators, specialized
editors, and testing tools.
 These tools bridge the gap between computer efficiency and human creativity, facilitating
expression of ideas while enforcing rigor.
 They enhance software quality by allowing individuals to avoid repetitive or precise tasks better
suited for computers.

COMSATS University Islamabad, Wah Campus


Software Construction’s Links to other
Knowledge Areas.
Integrated Evaluation in Software Construction
 Evaluation of software products is a crucial theme in software engineering, encompassing peer code review, testing, quality
assurance, and measures.
 Integrated evaluation ensures continuous or periodic internal checks within the development process to maintain
correctness.
 Product evaluations include design reviews, module compilations, and unit tests, while process-level evaluations involve
periodic reassessment of development artifacts.
 Integrated evaluation in software engineering is not as advanced as in hardware engineering, where self-test logic and error
recovery are built into components.
 Historically, software construction has often lacked sufficient evaluation, with developers sometimes omitting necessary
checks due to overconfidence.
 Automated, semi-automated, and manual evaluation methods are available for software construction, including unit testing,
compile-time checks, run-time checks, code reviews, and measurement tools.
 Measurement tools are particularly useful during the integration of large software suites, ensuring collected measurements
are relevant to the development process goals

COMSATS University Islamabad, Wah Campus


Software Construction’s Links to other
Knowledge Areas.
Importance of Standards in Software Construction
 Successful communication relies on a common language, and standards serve as agreements
that facilitate this shared understanding within a community of users.
 Standards, whether selected by customers or organizations, integrate concepts and
technologies into a broader language for effective communication.
 Project managers should consider incorporating additional standards tailored to the project's
specific characteristics to enhance efficiency and interoperability.
 Software construction is particularly influenced by standard selection, impacting critical aspects
such as programming languages, databases, communication methods, platforms, and tools.
 While standards are often chosen before construction begins, it's essential for the overall
software development process to account for construction needs when selecting standards.

COMSATS University Islamabad, Wah Campus


Software Construction’s Links to other
Knowledge Areas.
Construction Languages
 Definition: Construction languages encompass all forms of communication enabling humans to
specify executable problem solutions to computers.
 Configuration Languages: Simplest form where developers select from predefined options to create
new or custom software installations.
 Example: Text-based configuration files in Windows and Unix operating systems.
 Toolkit Languages: Utilized for building applications from toolkits, consisting of reusable parts.
 Example: Application programming languages (e.g., scripts) or implied by toolkit interfaces.
 Programming Languages: Most flexible construction languages requiring extensive training and skill.
 Implications: Each type of construction language offers varying levels of complexity and flexibility,
impacting development processes differently.

COMSATS University Islamabad, Wah Campus


Software Construction’s Links to other
Knowledge Areas.
Programming Languages in Software Construction
 Software construction aims to communicate intent unambiguously between humans and
computers, with programming languages serving as the interface between the two.
 Unlike natural languages, programming languages are more literal and lack the contextual
understanding of the natural world.
 Programming languages enable precise expression of instructions and commands that
computers can understand and execute.
 Depending on the application domain, specialized, domain-specific languages like PhP,
Python, SQL, may be developed or utilized to meet specific requirements

COMSATS University Islamabad, Wah Campus


Manual and Automated Construction:
The Spectrum of Construction Techniques
 Manual Construction:
 Manual construction involves solving complex problems using a language that computers can execute.
 Practitioners of manual construction require a diverse skill set, including problem decomposition,
formal analysis, and forecasting changes over time.
 Expert manual constructors leverage advanced logical skills within dynamic environments such as
computers or networks.
 While coding in a programming language is a component of manual construction, it's not the sole
definition.
 Effective manual construction results in code that processes data accurately, handles errors effectively,
runs efficiently, and is structured for resilience and adaptability.
 Inadequate manual construction may lead to code resembling an unprofessional painting, lacking
critical details and poorly stitched together.

COMSATS University Islamabad, Wah Campus


Manual and Automated Construction:
The Spectrum of Construction Techniques
 Automated Construction
 Automated construction refers to software construction where overall coordination is primarily
handled by automated tools or environments.
 While complete automation of software construction is not feasible, the control of the
construction process can be largely automated, shifting coordination from people to computers.
 This automation impacts the complexity of the construction process by breaking human
contributions into smaller, more manageable chunks.
 Automated construction emphasizes reuse, leveraging existing software solutions effectively by
limiting human options.
 However, automated construction may not always result in lower costs, as the initial setup costs
for the machinery may outweigh the savings from its use.

COMSATS University Islamabad, Wah Campus


Moving Towards Automation
 Objective: Advance construction processes towards higher levels of automation.
 Goal: Simplify software systems to the extent that selecting from a simple set of options is sufficient for
operation.
 Implications: Enhance accessibility, safety, and reliability by minimizing opportunities for error.
 Scope of Automation: Automation goal is evident across all aspects of software development.
 Examples:
 Application-specific toolkits offer a degree of control beyond basic selections.
 Coding techniques and programming practices reflect automation principles.
 Defining constants automates value insertion during program modifications.
 Class inheritance in object-oriented programming automates method conveyance into new or derived classes.

 Benefits: Streamline development processes, foster reliability, and optimize system performance.

COMSATS University Islamabad, Wah Campus

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy