Unit I
Unit I
Unit I
Defining Software:
• System software
o Written to provide service to other programs
o Some system software (Operating System, Compilers)
• Application software
o Stand-alone programs that solve a specific business need.
• Engineering/Scientific software
o Applications ranging from astronomy to volcanology.
• Embedded Software
o Resides within a product or system
o Used to implement and control features and functions for the end user
o It performs limited functions
o E.g., Key pad control for a microwave oven
• Product-line software
o Designed to provide a specific capability for use by many different
customers.
o E.g., Inventory Control Products, word processing, spreadsheets.
• Web applications
o It is also called WebApps
o It is special type of application run on the internet.
• Artificial intelligence software
o Applications within this area include robotics, expert systems, pattern
recognition (image and voice), and artificial neural networks.
Legacy Software:
• Network intensiveness
• Concurrency
• Unpredictable load
• Performance
• Availability
• Data driven
• Content sensitive
• Continuous evolution
• Immediacy
• Security
• Aesthetics
Software Engineering:
A Layered Technology:
Tools
Methods
Process
A Quality Focus
A Quality Focus:
Process:
Tools:
• Tools provide automated or semi automated support for the process and
methods.
• Communication
o Involves communication among the customer and other stake holders.
o encompasses requirements gathering
• Planning
o Establishes a plan for software engineering work; addresses technical
tasks, resources, work products, and work schedule
• Modeling
o Encompasses the creation of models to better understand the
requirements and the design
• Construction
o Combines code generation and testing to uncover errors
• Deployment
o Involves delivery of software to the customer for evaluation and
feedback
Umbrella Activities:
Process Models
• Software process is represented by framework activities and each action is
defined by Task set.
• Each Task set is populated by Work Task, Work Products, and Project
Milestones.
• The hierarchy of technical work within the software process is activities,
encompassing actions, populated by tasks.
Process Flow:
• Process flow describes how the framework activities and the actions and
tasks are organized with respect to sequence and time.
• Types of process flow:
o Linear process flow
o Iterative process flow
o Evolutionary process flow
o Parallel process flow
Generic
process
Framework
activities
Process
model
Process
flow
Process Pattern:
Increment #1
Prototyping
• Long-term
term project commitment unwise because of potential changes to
economic priorities
• Time spent for evaluating risks too large for small or low-risk projects
Component-Based Development
Component-Based Development
AOSD defines “aspects” that express customer concerns that cut across
multiple system functions, features, and information
Today, the Unified Process and UML are widely used on Object-Oriented
Projects of all kinds.
Inception:
Elaboration:
Construction:
◦ All necessary and required features and functions for the software
increment are then implemented in source code.
Transition:
◦ In this phase is given to end users for beta testing and user feedback
reports both defects and necessary changes.
Production:
◦ During this phase, the ongoing use of the software is monitored and
supported.
Personal and Team Software Process:
1. Planning
2. High-level design
3. High-level design review
4. Development
5. Postmortem
Build self-directed team that plan and track their work, establish goals and
plans.
A self-directed team has a consistent understanding of its overall goals and
objectives. It defines roles and responsibilities for each team member.
Show managers how to motivate their teams.
Accelerate software process improvement by making CMM level 5
expected.
Provide improvement guidance to high-maturity organization.
Facilitate university teaching of industrial – grade team skills.
1. Launch
2. High-level design
3. Implementation
4. Integration and test
5. Postmortem
Like in PSP these activities enable the team to plan, design, and construct
software in a disciplined manner.
TSP makes use of a wide variety of scripts, forms and standards that
serve to guide team members in their work.
Agile Development
What is Agility?