0% found this document useful (0 votes)
15 views7 pages

Unit 1

UNIT 1

Uploaded by

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

Unit 1

UNIT 1

Uploaded by

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

UNIT 1

Software and Software Engineering

THE NATURE OF SOFTWARE

Software takes Dual role of Software. It is a Product and at the same time a

Vehicle for delivering a product.

Software delivers the most important product of our time is called information.

Characteristics of software

Software has characteristics that are considerably different than those of

hardware:

1) Software is developed or engineered; it is not manufactured in the Classical

Sense.

2) Software doesn’t “Wear Out”

3) Although the industry is moving toward component-based construction, most

software continues to be custom built

UNIQUE NATURE OF WEB APPS

1. Early websites were primarily linked hypertext files with basic text and

graphics, but advancements in HTML and tools like XML and Java led to the

development of WebApps, which integrated computing capabilities with

informational content.

2. Today, WebApps are sophisticated tools that not only serve individual users

but are also integrated with corporate databases and business applications,

blending various fields such as publishing, marketing, and technology.


Key Attributes of WebApps:

1. Network Intensiveness: WebApps operate on networks, allowing global or

limited access for diverse users.

2. Concurrency: Many users can access WebApps simultaneously, often with

varying usage patterns.

3. Unpredictable Load: User numbers can fluctuate significantly, with daily

variations in traffic.

4. Performance: Slow response times can drive users away.

5. Availability: Users expect WebApps to be accessible 24/7, though 100% uptime is

unrealistic.

6. Data Driven: WebApps primarily present multimedia content and often access

external databases.

7. Content Sensitive: The quality of content significantly impacts a WebApp's

effectiveness.

8. Continuous Evolution: WebApps evolve continuously rather than through

scheduled releases.

9. Immediacy: Quick time-to-market is crucial, often within days or weeks.

10. Security: Protecting sensitive content is challenging due to widespread

network access.

11. Aesthetics: The visual appeal of a WebApp plays a critical role in its success,

especially in marketing contexts.


SOFTWARE ENGINEERING - A LAYERED TECHNOLOGY

In order to build software that is ready to meet the challenges of the

twenty-first century, you must recognize a few simple realities:

1. Problem should be understood before software solution is developed

2. Design is a pivotal Software Engineering activity

3. Software should exhibit high quality

4. Software should be maintainable

Software engineering is a layered technology grounded in a commitment to

quality, with the process layer providing a framework for effective

development. Methods guide the technical aspects of software creation, while

integrated tools offer automated support, forming a system known as

computer-aided software engineering.

SOFTWARE PROCESS

It consists of activities, actions, and tasks aimed at creating work products.

It includes five core activities:

1. communication to gather requirements,

2. planning to outline project tasks and

3. risks, modeling to clarify requirements and design,

4. construction for coding and testing, and


5. deployment for customer evaluation.

These activities apply to projects of all sizes and are supported by umbrella

activities like tracking, risk management, quality assurance, technical reviews,

measurement, configuration management, reusability management, and work

product preparation, which help manage and control the project's progress and

quality.

SOFTWARE ENGINEERING PRACTICE

A generic software process model consists of activities that create a

framework for software engineering, including communication, planning,

modeling, construction, and deployment.

Essence of Practice:

1. Understand the Problem: Identify stakeholders, unknowns, compartmentalize

the problem, and create an analysis model.

2. Plan the Solution: Recognize patterns from similar problems, identify reusable

elements, define sub-problems, and create a design model.

3. Carry Out the Plan: Use the design as a roadmap, ensuring code aligns with

the model and is provably correct.

4. Examine the Result: Implement a comprehensive testing strategy to ensure

the solution meets all requirements and is validated against stakeholder needs.
SOFTWARE MYTHS

Software myths—misconceptions about software and its development—persist

due to their seemingly reasonable nature and are often propagated by

experienced practitioners.

Management Myths:

1. Standards Book Myth: Having a standards book doesn’t guarantee its usage,

relevance, or adaptability to modern practices.

2. Adding Programmers Myth: Adding more programmers to a delayed project

often worsens delays due to the time needed for onboarding.

3. Outsourcing Myth: Lack of internal project management skills leads to

struggles when outsourcing software development.

Customer Myths:

1. Vague Objectives Myth: General statements of objectives are inadequate;

clear requirements arise from continuous communication.

2. Change Accommodation Myth: While software can adapt, late changes lead to

significant cost impacts due to established designs and resource commitments.

Practitioner Myths:

1. Completion Myth: Much of the effort occurs post-delivery; coding is just the

beginning.

2. Quality Assessment Myth: Quality can be assessed through formal reviews

before the program runs, which are more effective than testing alone.

3. Deliverable Myth: A successful project includes more than just a working

program; documentation is essential for support.


4. Documentation Myth: Effective software engineering focuses on quality,

which reduces rework and speeds delivery, countering the notion that it leads to

unnecessary documentation.

PROCESS MODELS

A GENERIC PROCESS MODEL:

The software process consists of framework activities populated by software

engineering actions, each defined by a task set outlining tasks, work products,

quality assurance points, and milestones.

A generic framework includes five activities: communication, planning, modeling,

construction, and deployment, supported by umbrella activities like project

tracking, risk management, and quality assurance.


Process Flows:

- Linear: Activities are executed sequentially from communication to

deployment.

- Iterative: Activities can be repeated before moving forward.

- Evolutionary: Activities are performed in a circular manner, enhancing

software with each iteration.

- Parallel: Some activities are executed concurrently, such as modeling one

aspect while constructing another.

PROCESS ASSESSMENT AND IMPROVEMENT

Assessment aims to understand and enhance the current state of the

software process, with several approaches proposed over the years:

1. SCAMPI (Standard CMMI Assessment Method for Process Improvement): A

five-step model involving initiating, diagnosing, establishing, acting, and learning,

based on SEI CMMI.

2. CBA IPI (CMM-Based Appraisal for Internal Process Improvement): A

diagnostic technique for assessing a software organization’s maturity, based on

SEI CMM.

3. SPICE (ISO/IEC 15504): A standard for software process assessment that

helps organizations evaluate the effectiveness of their processes.

4. ISO 9001:2000 for Software: A generic standard for improving overall quality

applicable to any software organization.

You might also like