0% found this document useful (0 votes)
19 views2 pages

Software Engineering: COCOMO & Requirements

The document outlines three modes of software engineering according to COCOMO: Organic, Semi-detached, and Embedded, each varying in complexity and team experience. It also discusses functional and nonfunctional requirements for software, emphasizing their importance in meeting user needs and system quality attributes. Additionally, it mentions the potential formats for expressing these requirements in software development.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
0% found this document useful (0 votes)
19 views2 pages

Software Engineering: COCOMO & Requirements

The document outlines three modes of software engineering according to COCOMO: Organic, Semi-detached, and Embedded, each varying in complexity and team experience. It also discusses functional and nonfunctional requirements for software, emphasizing their importance in meeting user needs and system quality attributes. Additionally, it mentions the potential formats for expressing these requirements in software development.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.

Software Engineering

1. COCOMO

Organic mode: - These projects are very simple and have small team size. The team has a good application experience
work to a set of less than rigid requirements. A thermal analysis program developed for a heat transfer group is an
example of this.

Semi-detached mode: - These are intermediate in size and complexity. Here the team has mixed experience to meet a
mix of rigid and less than rigid requirements. A transaction processing system with fixed requirements for terminal
hardware and database software is an example of this.

Embedded mode: - Software projects that must be developed within a set of tight hardware, software, and operational
constraints. For example, flight control software for aircraft.

2. Information System
a. Hospital Management System –
b. Functional and functional requirements

functional requirements as “the product capabilities, or things that a product must do for its users.”1 Functional
requirement defines how software behaves to meet user needs. For example, imagine a health insurance company
designing a claims system. There will be functional requirements such as “Determine Claimant Eligibility,” “Adjudicate
Claim,” and “Pay Claim.” These high-level functional requirements will also include many detailed functional
requirements. For example, “Pay Claim” might include the functional requirement “Determine Payee” (the insured or
the service provider).

Nonfunctional requirements as “the quality attributes, design and implementation constraints, and external interfaces
which a product must have.”2 Quality attributes are often affectionately called the “ilities” because the names of many
of them end in “ility.” Examples of quality attributes include availability, maintainability, performance, portability,
reliability, robustness, security, scalability, testability, usability, and others. Many nonfunctional requirements are global
in nature; they apply to an entire system. Performance requirements -- such as requirement for response time or
throughput -- are often global. Some nonfunctional requirements may apply to (or vary by) specific usages of the system.
For example, 24×7 availability may be needed for some, but not all, of the users of the system.

Depending on your organization’s approach to software development, functional requirements may be expressed as
requirements statements, use cases, scenarios, or user stories. Nonfunctional requirements may be captured as
narrative statements, formatted templates, or acceptance criteria.
c. Diagram of proposed system

Common questions

Powered by AI

COCOMO defines three project modes: Organic, Semi-detached, and Embedded. Organic mode features simple projects, smaller team sizes, and teams with good application experience working with less rigid requirements. An example is a thermal analysis program for a heat transfer group . Semi-detached mode involves intermediate size and complexity projects, with teams having mixed experience to meet a combination of rigid and less rigid requirements, exemplified by a transaction processing system with fixed hardware and database software requirements . Embedded mode includes projects that require development within strict constraints of hardware, software, and operations, such as flight control software for aircraft .

Functional requirements can be documented as traditional requirements statements, use cases, scenarios, or user stories, depending on an organization's approach to software development . Nonfunctional requirements, on the other hand, may be captured as narrative statements, formatted templates, or acceptance criteria . Each format offers varying levels of detail and clarity, catering to different stakeholders or phases of development.

Functional requirements specify what the software must do to meet user needs, describing product capabilities such as "Determine Claimant Eligibility" or "Pay Claim" in a claims system . Nonfunctional requirements describe quality attributes, constraints, and external interfaces, often focusing on system-wide attributes like availability, maintainability, or performance . While functional requirements are centered on tasks the software performs, nonfunctional requirements address the quality and operational constraints of how those tasks are performed.

Nonfunctional requirements are considered 'global' because they often apply to the entire system rather than individual functions . They include attributes like performance, reliability, and security that need to be consistently managed across all aspects of the product. However, their scope can vary; for instance, 24×7 availability might be necessary for some system users but not others, indicating that while these requirements are generally broad, they do adapt based on specific usage scenarios or user needs .

A project is categorized as Semi-detached in the COCOMO model when it involves intermediate complexity and size, requiring a team with mixed levels of experience to handle both rigid and less rigid requirements. An example is a transaction processing system that operates under strict terminal hardware and database software specifications, necessitating a nuanced approach balancing control with flexibility .

In a health insurance claim system, functional requirements include processes like "Determine Claimant Eligibility," "Adjudicate Claim," and "Pay Claim." Each of these high-level requirements can be further broken down; for example, "Pay Claim" includes sub-requirements such as "Determine Payee," which decide whether payments are made to the insured party or the service provider .

COCOMO Embedded mode is characterized by the need to develop software within tight hardware, software, and operational constraints. This integration is crucial for high-stakes environments where flexibility can mean failure. An example of a project in this mode is flight control software for aircraft, where precision and adherence to constraints are critical for safety and performance .

The 'ilities' are a key component in defining nonfunctional requirements as they represent quality attributes necessary for a software product's effectiveness. These attributes include availability, maintainability, performance, portability, reliability, robustness, security, scalability, testability, and usability. Each addresses a different dimension of user satisfaction and system capability, influencing user experience and operational efficiency .

Capturing nonfunctional requirements as narrative statements allows for comprehensive descriptions that can foster a shared understanding among stakeholders, but may lack uniformity and lead to inconsistent interpretations. In contrast, formatted templates provide structure, consistency, and easier comparison across requirements, though they may constrain the detail and elucidation of complex attributes, possibly missing nuances critical to system quality .

Requirements statements provide concise, clear descriptions of expected software behavior, facilitating quick assessments and prioritization. However, they can lack context and may not fully convey user interactions. Use cases, on the other hand, offer detailed user-centric scenarios that clarify interactions and outcomes, beneficial for aligning with end-user needs. The trade-off is their complexity and the potential for time-consuming documentation, which can slow initial project phases and introduce variations in interpretation if not clearly standardized .

You might also like