0% found this document useful (0 votes)
32 views19 pages

SE Unit 1

Uploaded by

01badgirl1
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)
32 views19 pages

SE Unit 1

Uploaded by

01badgirl1
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/ 19

1. Define the following terms.

i) Legacy systems :

Legacy Systems refer to older computer-based systems that are still in use, often built with
outdated or obsolete technology. These systems are typically large, business-critical, and
have been developed over a long period. They include not only software but also hardware,
business processes, and organizational policies that are difficult to change due to their
reliance on the legacy software. Replacing or upgrading these systems is often too
expensive and risky, so they are maintained and modified to accommodate new
requirements, platforms, or regulations.

ii) CASE :

CASE stands for Computer-Aided Software Engineering. It includes software tools that
help with different parts of software development, like:

● Analyzing requirements
● Creating system models
● Debugging
● Testing

These tools come with features like editors, analysis tools, code generators, and
documentation helpers to make the software development process easier and faster.

2. Illustrate the essential characteristics of socio technical systems.

Emergent Properties:

● These are system-wide properties, not found in individual parts.


● They depend on how the system components interact.
● You can only observe them after the whole system is built.

Nondeterministic Behavior:

● The system may not give the same output for the same input every time.
● This is because human operators are involved, and people may act differently in
similar situations.
● Using the system can also change how its parts work together, leading to new
behaviors.

Dependence on Organizational Objectives:

● How well the system works depends on the organization’s goals.


● Goals may change over time or conflict with each other.
● If new management changes how they view goals, a system that was once
successful could be seen as a failure.
3. Differentiate between the following.

i) Software engineering and Computer science.

ii) Generic products and Customized products.

4. Justify why dependability is the most important emergent property for critical
systems.

Dependability is the most important emergent property for critical systems because it
ensures that the system can be trusted to function correctly and safely in high-stakes
situations. Here's why:

● Includes Key Attributes: Dependability combines critical aspects like availability,


reliability, safety, and security. All these are essential for systems where failures
can lead to serious consequences.
● Ensures Safety: In critical systems like healthcare or air traffic control, safety is vital.
Dependable systems minimize risks and prevent harm to people or the environment.
● Supports Continuous Operation: High dependability ensures the system is
available and functions reliably over time, which is crucial for 24/7 critical services
like power grids or emergency systems.
● Protects Against Threats: Dependability includes security, helping systems resist
attacks or unauthorized access, which is essential for sensitive data and operations.
● Handles Failures Gracefully: Dependable systems often include repairability and
survivability, allowing them to recover quickly and continue providing service even
when parts of the system fail.
● Trust and Confidence: Critical systems must inspire user trust. Dependable
systems reduce errors and ensure expected behavior, giving users confidence in
their operation.

In summary, dependability is essential for critical systems because it encompasses all the
properties needed to ensure safe, reliable, and secure operation in environments where
failure is not an option.

5. Summarize with an example, how availability depends on time needed to repair


the faults.

Summary:
Availability refers to the probability that a system is operational and ready to deliver services
to users. It does not only depend on how often the system fails but also on how quickly it can
be repaired and brought back to operation.

Example:

● System A: Fails once a year but takes 3 days (4320 minutes) to repair.
● System B: Fails once a month but takes 10 minutes to repair each time.

Even though System A is more reliable (fewer failures), it has much lower availability
because the long repair time adds up to 4320 minutes of downtime annually. In contrast,
System B, despite failing more often, has only 120 minutes of downtime annually,
making it much more available.

This shows that quick repair times are crucial for high availability, even if reliability is lower.
6. Explain with a neat diagram waterfall model.

Explanation of the Waterfall Model

The Waterfall Model is a step-by-step process used in software development. It divides the
project into distinct phases where the output of one phase becomes the input for the next.

Each phase has specific goals, and the process follows a linear sequence. Changes are
costly because once a phase is completed, revisiting it is challenging.

This model works best when requirements are well-understood and stable.

Phases of the Waterfall Model:

● Requirements Analysis and Definition:


○ Understand and document what the system should do.
○ Define system services, constraints, and goals based on user consultations.
● System and Software Design:
○ Break down requirements into software and hardware components.
○ Design the architecture and relationships between system components.
● Implementation and Unit Testing:
○ Develop the actual code based on the design.
○ Test each component (unit testing) to ensure it meets specifications.
● Integration and System Testing:
○ Combine all components into a complete system.
○ Test to verify that all requirements are met.
● Operation and Maintenance:
○ Deploy the software for actual use.
○ Fix errors, improve performance, and add features as needed.
7. Describe the salient features of the spiral model of the software process with
an illustrative diagram.

The Spiral Model, introduced by Boehm in 1988, is a risk-driven process model that
combines iterative development with systematic risk assessment. The process is visualized
as a spiral, where each loop represents a phase of development.

Key Features:

● Phased Development:
○ Each loop in the spiral corresponds to a development phase (e.g., feasibility
study, requirements definition, design, etc.).
● Risk Assessment and Management:
○ A unique aspect of the Spiral Model is its focus on identifying and reducing
risks in every phase.
● Iterative Nature:
○ The model allows iterative refinement through successive loops, adapting to
changing project requirements or risks.
● Flexible Development Models:
○ It incorporates various development approaches (e.g., prototyping, waterfall)
depending on the risk and project goals.
● Emphasis on Customer Feedback:
○ Prototypes and partial implementations are used to gather early feedback and
ensure the system aligns with user needs.
● Objective-Driven:
○ Each phase begins with clear objectives and constraints to guide
development.
● Regular Reviews:
○ After each loop, the project is reviewed to decide whether to continue or
terminate.

Phases of a Spiral Model Loop:

● Objective Setting:
○ Define the goals, constraints, and plans for the current phase.
○ Identify potential risks.
● Risk Assessment and Reduction:
○ Analyze risks and create strategies to mitigate them (e.g., building a prototype
to address design uncertainties).
● Development and Validation:
○ Develop the necessary components and validate them.
○ Choose the best approach based on the identified risks.
● Planning:
○ Review the phase and plan the next steps in the project.
○ Decide whether to proceed with another loop or stop.
Advantages of the Spiral Model:

● Reduces project risks by identifying and resolving them early.


● Supports dynamic requirements and evolving systems.
● Allows feedback through prototypes and simulations.

When to Use the Spiral Model:

● Suitable for large, complex, or high-risk projects.


● Ideal when requirements are not well-defined at the beginning.

8. Explain software process activities. Also differentiate between software


engineering and system engineering.

Software Process Activities:

The software process refers to the set of activities that produce a software product. These
activities are fundamental to all software development processes, and they include:

● Software Specification:
○ This is the first activity where the software requirements are defined.
Customers and engineers work together to describe what the software should
do, including its features and the constraints it must operate under.
● Software Development:
○ This is the phase where the actual design and coding of the software take
place. Based on the specifications, engineers create the software through
designing the system and writing the code.
● Software Validation:
○ After development, the software needs to be checked to ensure that it meets
the requirements defined in the specification. This activity includes testing and
reviewing to confirm that the software works as expected and fulfills the
customer’s needs.
● Software Evolution:
○ Software needs to be updated over time due to changes in customer
requirements, technology, or the market. This activity involves modifying the
software after it’s been deployed to adapt it to these changes.

9. With figure explain the phases of RUP.

The Rational Unified Process (RUP) is a software development process that divides the
development life cycle into four distinct phases. These phases focus more on business goals
than technical activities, providing a flexible and iterative approach. Here's an explanation of
each phase along with a diagram:

Phases of RUP:

● Inception:
○ Goal: The primary objective of the inception phase is to establish the
business case for the system. This includes understanding the external
entities (users, systems) that will interact with the system and assessing how
the system will contribute to the business. If the contribution is minimal, the
project may be canceled at this stage.
○ Key Activities: Define scope, objectives, business case, and feasibility.
● Elaboration:
○ Goal: In the elaboration phase, a deep understanding of the problem domain
is developed. It involves creating a system architecture and a project plan, as
well as identifying key risks. By the end of this phase, a requirements model
(like use cases), architectural descriptions, and the development plan should
be in place.
○ Key Activities: Requirement gathering, architecture design, and risk
analysis.
● Construction:
○ Goal: This phase focuses on the actual development of the software,
including system design, programming, and testing. The system components
are built in parallel and integrated. By the end of this phase, a working version
of the software is ready, and it's prepared for deployment.
○ Key Activities: Design, coding, unit testing, integration, and documentation.
● Transition:
○ Goal: The final phase is concerned with moving the system from
development to the user community. It ensures the software works correctly in
a real-world environment. This phase may involve activities like deployment,
training, and user support.
○ Key Activities: Deployment, user training, and operational support.

10. Discuss the key challenges facing software engineering.

Software engineering in the 21st century faces three key challenges:

1.The Heterogeneity Challenge:

● Description: Systems today need to work across different types of computers and
networks. Often, they have to integrate new software with older systems, which may
be built in different programming languages. The heterogeneity challenge is about
creating software that can be dependable and flexible enough to work well in such
diverse environments.
● Key Issue: Building systems that can operate smoothly across different platforms
and work with legacy systems.

2. The Delivery Challenge:

● Description: Traditional software engineering methods can be slow, and businesses


today need software that can evolve quickly to keep up with fast-changing demands.
The delivery challenge is about speeding up the process of delivering large and
complex systems while still maintaining high software quality.
● Key Issue: How to reduce the time taken to develop and deliver systems without
compromising on quality.

3. The Trust Challenge:

● Description: As software is now a critical part of our daily lives, especially in systems
accessed remotely via the web, it is crucial that users can trust it. The trust challenge
involves developing methods to ensure that software can be relied upon and trusted
by its users.
● Key Issue: Ensuring that software, particularly web-based systems, is secure and
trustworthy for users.

11. Define software engineering. Explain the different types of software products.

Software Engineering:

Software engineering is the discipline that deals with all aspects of software production. This
includes everything from the initial stages of defining the software requirements to
maintaining the software once it’s in use. It is an engineering field where engineers apply
methods, theories, and tools to solve problems and make solutions work, while considering
organizational and financial constraints.

Types of Software Products:

● Generic Products:
○ Definition: These are standard, off-the-shelf software systems developed by
a company and sold to any customer who needs them.
○ Examples:
■ Software for personal computers like databases, word processors,
drawing programs, and project management tools.
○ Characteristics: They are made for the general market and are not tailored
to any specific customer.
● Customised (Bespoke) Products:
○ Definition: These are software systems developed for a specific customer or
organization. They are tailored to meet the unique needs of that customer.
○ Examples:
■ Control systems for electronic devices, business support systems, and
specialized systems like air traffic control software.
○ Characteristics: The software is designed and developed to meet the
specific requirements of a particular client or business process.

12. With a neat diagram, explain legacy systems.

Legacy Systems refer to older computer-based systems that are still in use, often built with
outdated or obsolete technology. These systems are typically large, business-critical, and
have been developed over a long period. They include not only software but also hardware,
business processes, and organizational policies that are difficult to change due to their
reliance on the legacy software. Replacing or upgrading these systems is often too
expensive and risky, so they are maintained and modified to accommodate new
requirements, platforms, or regulations.

The key components of legacy systems are:

● System Hardware: Older hardware, often mainframe-based, that is expensive to


maintain and may no longer be supported.
● Support Software: Software such as operating systems and compilers that are no
longer updated or supported.
● Application Software: The specific software that provides business services, often
made up of separate programs developed at different times.
● Application Data: Data processed by the system, which can be large, inconsistent,
and sometimes duplicated.
● Business Processes: The procedures used to achieve business objectives, often
designed around the legacy system.
● Business Policies and Rules: The guidelines that define how the business
operates, which may rely on the legacy system.

Explanation:

● The system hardware and support software may no longer be compatible with
modern technology.
● The application software, which runs the business processes, may have been
developed over time, sometimes with different programming languages or
frameworks.
● The business processes and policies are shaped by the functionality provided by the
legacy system, making any change to the system risky due to the interdependencies.

In summary, legacy systems are maintained not because they are optimal but because
replacing them could pose serious business risks, including the need to change business
operations and policies.
13. What is system engineering? Explain system engineering process with neat
diagram.

System engineering is the process of designing, implementing, validating, deploying, and


maintaining socio-technical systems. These systems include both hardware and software
components and interact with users and the environment. System engineers focus on:

● Services the system provides.


● Constraints within which the system must work.
● How the system fulfills its purpose.

Software engineering is closely linked to system engineering since many software


challenges arise due to system-level decisions.

System Engineering Process

The process involves the following phases:

● Requirements Definition: Understanding and specifying what the system needs to


do, including user and organizational requirements.
● System Design: Structuring the system into components, such as hardware and
software, and deciding how these components interact.
● Subsystem Development: Developing the smaller parts (subsystems) of the overall
system.
● System Integration: Combining the subsystems into a complete system and
ensuring they work together as intended.
● System Installation: Deploying the system into its intended environment.
● System Evolution: Updating and improving the system to meet new requirements or
adapt to environmental changes.
● System Decommissioning: Safely retiring the system when it is no longer needed
or viable.

14. How critical systems differ from other systems? Describe a simple safety
critical system with neat diagram.
How critical systems differ from other systems? Describe a simple safety critical system with neat diagram.
Critical systems are different from regular systems because their failure can lead to serious
consequences, such as injury, loss of life, or significant financial and environmental damage.
Here are the key differences:

● Dependability: Critical systems must be highly reliable, safe, and secure, as users
depend on them for essential tasks.
● High Cost of Failure: Failure can result in enormous costs or harm, which is not the
case with regular systems where failures are often less impactful.
● Development Techniques: Critical systems are developed using proven, trusted
methods rather than new techniques to ensure safety and dependability.
● Extensive Testing: Critical systems undergo thorough verification and validation to
minimize risks, making their development costlier than regular systems.

A Simple Safety-Critical System

A safety-critical system is one where failure can cause harm to people, like a medical insulin
pump system for diabetics.

Description of the Insulin Pump System:

● Purpose: The system delivers insulin to diabetic patients automatically, based on


blood sugar levels.
● Working:
○ A sensor detects blood sugar levels.
○ This data is sent to the controller, which calculates the insulin needed.
○ The pump delivers insulin through a needle assembly attached to the
patient.
○ A clock schedules the process, and an alarm notifies any issues.
○ Displays show information to the patient or medical staff.
○ A power supply supports the system.

Importance:
The system prevents dangerous conditions like low blood sugar (which can cause
unconsciousness) and high blood sugar (which can lead to long-term health issues like
kidney or heart damage).

15. Describe the general model used for software design.

The software design process involves converting the system's requirements into a structure
that can be implemented. It typically progresses through several stages, with constant
refinement and feedback to ensure accuracy. Below is a simple explanation of the general
model:

● Architectural Design
○ In this stage, the system is divided into smaller sub-systems.
○ Relationships between these sub-systems are identified and documented.
○ The goal is to define the overall structure of the system.
● Abstract Specification
○ Each sub-system is described in terms of the services it provides and the
rules it must follow.
○ The focus is on "what" the sub-system does, not "how" it does it.
● Interface Design
○ The interfaces (how sub-systems interact) are planned and documented.
○ This ensures that sub-systems can communicate without needing to
understand each other’s internal workings.
○ Clear and unambiguous design is essential here.
● Component Design
○ The system's services are broken down into smaller components.
○ The interaction between these components is defined.
● Data Structure Design
○ The structure and organization of data within the system are planned.
○ Detailed specifications of how data will be stored and managed are created.
● Algorithm Design
○ The algorithms (step-by-step processes) required for services are designed
in detail.
○ These are defined to ensure functionality and efficiency.

Key Features of the Model

● Iterative Development: The design process is not linear. Errors and missing details
from earlier stages are corrected in later stages, leading to backtracking and
refinement.
● Abstraction Levels: Multiple models of the system are developed at different levels
of detail, starting abstract and becoming more detailed.
● Feedback and Rework: Constant feedback between stages ensures the design is
improved over time.

This model helps transition from high-level requirements to a precise, detailed design that
can be directly implemented in the software development process.
16. List and explain the attributes of a good software.

17. Explain emergent system properties and give examples for the same.
Explain emergent system properties and give examples for the same.
Emergent system properties are characteristics that arise from the interactions and
interdependencies among the components of a system, rather than from any individual
component. These properties only become apparent once the system is fully assembled and
operational. They can often be complex and unpredictable, making them challenging to
derive or predict based solely on the behavior of individual components.

Types of Emergent Properties:

1. Functional Emergent Properties:


○ These appear when all parts of a system work together to achieve a specific
objective.
○ Example: A bicycle, when fully assembled, serves as a transportation device.
This functional property does not exist in any single component of the bicycle
but emerges from the integration of all parts.
2. Non-Functional Emergent Properties:
○ These relate to the system's behavior in its operational environment.
○ Examples: Reliability, performance, safety, and security. These properties are
crucial, especially for computer-based systems, as they significantly impact
usability and acceptance.

Examples of Emergent Properties:

● Volume: The total space occupied by a system depends on how components are
arranged.
● Reliability: The system's ability to function correctly over time, influenced by
component reliability and their interactions. A failure in one component can
propagate through the system.
● Security: The system's ability to resist attacks, which depends on its architecture and
safeguards.
● Repairability: How easy it is to diagnose and fix issues.
● Usability: How easy it is to operate the system, considering both technical and
environmental factors.

Influences on System Reliability:

1. Hardware Reliability: Likelihood of hardware failure and the time required for
repairs.
2. Software Reliability: Probability of software producing incorrect outputs. Unlike
hardware, software failures are often transient.
3. Operator Reliability: Probability of human error, often increasing under stress, which
may further affect system performance.

The interdependence among these factors means that a failure in one area, such as
hardware, can lead to software malfunctions or operator errors, compounding system issues.

18. What is critical system? Explain the types of critical system.

A critical system is a system that is essential for people or businesses. If it fails to work as
expected, it can cause serious problems such as:

● Economic losses
● Physical damage
● Threats to human life

People or businesses depend on these systems, so they need to work reliably and safely.

Types of Critical Systems

1. Safety-Critical Systems
○ These systems are responsible for safety.
○ If they fail, it may result in injuries, loss of life, or damage to the
environment.
○ Example: A control system in a chemical plant. If it fails, dangerous
chemicals might leak, harming people or the environment.
2. Mission-Critical Systems
○ These systems are crucial for achieving specific goals or tasks.
○ If they fail, the mission or goal cannot be completed.
○ Example: A navigation system for a spacecraft. Failure can lead to the
spacecraft getting lost.
3. Business-Critical Systems
○ These systems are essential for a business's operations.
○ If they fail, the business may lose money or face major disruptions.
○ Example: A bank’s customer accounting system. If it fails, transactions and
records may get messed up, causing huge financial issues.

Key Feature: Dependability

● Critical systems must be dependable.


● Dependability includes:
○ Availability: The system should always be ready to use.
○ Reliability: The system should perform its tasks correctly.
○ Safety: The system should not harm people or the environment.
○ Security: The system should protect data and prevent unauthorized access.

These features ensure critical systems work as expected and prevent major issues.

19. Define the following terms.


i) CASE
CASE stands for Computer-Aided Software Engineering. It includes software tools that
help with different parts of software development, like:

● Analyzing requirements
● Creating system models
● Debugging
● Testing

These tools come with features like editors, analysis tools, code generators, and
documentation helpers to make the software development process easier and faster.

ii) Software
Computer programs and associated documentation. Software products may be developed
for a particular customer or may be developed for a general market.

iii) Software Engineering


Software engineering is an engineering discipline which is concerned with all aspects of
software production.

iv) Computer Science

Computer Science is the study of:

● Theories and concepts behind how computers work.


● Fundamental principles like algorithms, data structures, and programming
languages.
It focuses on understanding the basics of computing, solving problems using computers, and
developing new technologies.

Key Point: Computer Science is about understanding "how" and "why" things work in
computing.

v) Software Process Model


A simplified representation of a software process, presented from a specific perspective.

20. Distinguish between System Engineering Process and Software Development


Process.

21. Explain the complementary approaches to improve the reliability of a system.

Improving system reliability involves various approaches to ensure the system behaves as
expected, even in challenging environments or under different use cases. Here are some
complementary approaches explained in simple terms:

1. Understand the Environment of Use


○ Reliability depends on the environment where the system is used.
○ For example, software used by office workers may be more reliable because
they follow instructions, but university students may experiment and find
faults.
○ Solution: Test the system in different environments to understand its
behavior in various conditions.
2. Anticipate User Behavior
○ Users may behave differently based on their habits, locations, or needs.
○ Example: A car’s faulty windshield wiper may seem unreliable in Seattle (wet
climate) but not in Las Vegas (dry climate).
○ Solution: Study how different types of users interact with the system and
design it to handle unexpected usage.
3. Address Failure Severity
○ Some failures have minor impacts, while others are severe and can’t be
ignored.
○ Example: A car engine that cuts out while driving is considered unsafe, even
if it happens rarely.
○ Solution: Focus on critical failures and prioritize fixing them over minor
issues.
4. Ensure Clear System Specifications
○ Reliability depends on how well the system meets its specifications.
○ Problem: Specifications may not align with what users expect.
○ Solution:
■ Write complete and correct specifications.
■ Involve domain experts (people with knowledge of the field) to
ensure the system behaves as users expect.
5. Extensive Testing
○ Test the system under various conditions and edge cases to discover faults
early.
○ Example: Simulate unusual behaviors or failures during testing to prepare for
real-world scenarios.
6. User Feedback and Improvements
○ Sometimes, users perceive the system as unreliable because their
expectations are not met.
○ Solution: Collect user feedback, understand their expectations, and refine
the system accordingly.

By combining these approaches—understanding environments, considering user behavior,


prioritizing critical failures, clarifying specifications, and continuous testing—a system’s
reliability can be significantly improved.

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