<< Chapter < Page Chapter >> Page >

Formal modeling using notations based on discrete mathematics, and which are traceable to logical reasoning, have made an impact in some specialized domains. These may be imposed by customers or standards or may offer compelling advantages to the analysis of certain critical functions or components.

Two standards provide notations which may be useful in performing conceptual modeling–IEEE Std 1320.1, IDEF0 for functional modeling; and IEEE Std 1320.2, IDEF1X97 (IDEFObject) for information modeling.

Architectural design and requirements allocation

At some point, the architecture of the solution must be derived. Architectural design is the point at which the requirements process overlaps with software or systems design and illustrates how impossible it is to cleanly decouple the two tasks. This topic is closely related to the Software Structure and Architecture subarea in the Software Design KA. In many cases, the software engineer acts as software architect because the process of analyzing and elaborating the requirements demands that the components that will be responsible for satisfying the requirements be identified. This is requirements allocation–the assignment, to components, of the responsibility for satisfying requirements.

Allocation is important to permit detailed analysis of requirements. Hence, for example, once a set of requirements has been allocated to a component, the individual requirements can be further analyzed to discover further requirements on how the component needs to interact with other components in order to satisfy the allocated requirements. In large projects, allocation stimulates a new round of analysis for each subsystem.

Architectural design is closely identified with conceptual modeling. The mapping from real-world domain entities to software components is not always obvious, so architectural design is identified as a separate topic. The requirements of notations and methods are broadly the same for both conceptual modeling and architectural design.

Requirements negotiation

Another term commonly used for this sub-topic is “conflict resolution.” This concerns resolving problems with requirements where conflicts occur between two stakeholders requiring mutually incompatible features, between requirements and resources, or between functional and non-functional requirements. In most cases, it is unwise for the software engineer to make a unilateral decision, and so it becomes necessary to consult with the stakeholder(s) to reach a consensus on an appropriate trade-off. It is often important for contractual reasons that such decisions be traceable back to the customer. We have classified this as a software requirements analysis topic because problems emerge as the result of analysis. However, a strong case can also be made for considering it a requirements validation topic.

Requirements specification

For most engineering professions, the term “specification” refers to the assignment of numerical values or limits to a product’s design goals. Typical physical systems have a relatively small number of such values. Typical software has a large number of requirements, and the emphasis is shared between performing the numerical quantification and managing the complexity of interaction among the large number of requirements. So, in software engineering jargon, “software requirements specification” typically refers to the production of a document, or its electronic equivalent, which can be systematically reviewed, evaluated, and approved.

Questions & Answers

What is software Engineering
Jakisay Reply
what is cocomo model
Shrudhi Reply
hi
sachin
hi
abdu
Hello guys
Jakisay
Please is there any scholarship for African students undergraduate for now
Awal Reply
4 generation technology
RICHA Reply
Richa, what is your question?
Darrell
what is the work of software engineer
mercy Reply
DilipDas
Dili
let's make something guys
Harold Reply
huh good hi guys vivo gun vivo
Chandan Reply
hello Google Translate project app
Rajendra Reply
yes
Vikash
steps of developing a software
latest Reply
Present
win
bamori project
Rajendra
hi
Chandan
hi
mercy
hi
hello
Jawad
Hey
Jakisay
hi
Pattapon
hello
martin
which approach used to reduce number of test cases
Harshdeep Reply
I wish to ask what is the mean of a data model
Ateke Reply
explanation of working of computer
Gulfam Reply
hi
Moshiur
Hi
Malak
Hi
Yaw
How are you friends
Malak
Hlo nice too me
win
Thank for all fri
win
what's going on
Aden
lean for anything
win
hi guys
Ateke
hello.
Martins
hola como estas hey
Nurullohon
hi
MS
What is software engineering
parfait Reply
good hi
MS
explain basic path testing for triangle problem?
Janavi Reply
Sorry
Mo
laptop ka meaning kaya hai
mahefuj Reply
hii bro
MOHD
hi
Aden
hi
Juhi
hi how are u doing bro
Aden
what you have?
Aden
Are you all Indians?
Bade
no I am ethiopian
Aden
I am a cameroonian
Ateke

Get the best Software engineering course in your pocket!





Source:  OpenStax, Software engineering. OpenStax CNX. Jul 29, 2009 Download for free at http://cnx.org/content/col10790/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Software engineering' conversation and receive update notifications?

Ask