<< 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

the reason for learning this course?
Gabriel Reply
components of software engineering
khan Reply
what is coding
YUSUF Reply
Coding is a type of a language that a computer understand..
HANAN
it's how a computer interprets software, programs and what to do when it reads the code. Code is like our sub-conscious but to a computer if that makes sense.
Dustin
hello, I don't know anything about software but I have this passion to learn. where do I start from pls
Oliver Reply
computer science class or just take a introduction to computers class. You can always try to find a mentor or self teach yourself as well.
Dustin
What is coding
diwakar
what important of software
Tom Reply
dorimon in hindi
Yogesh
Hello
Mark
Mrs dorimon
Mark
hello
Tom
ha
Khizer
I'm. new in programming
Khizer
did anyone help
Khizer
me
Khizer
ok on me am new in programming
Tom
can I have job sa programmer without degree
Khizer
hello guy's
Shey
what can helps new in programming
Tom
I want to know more about programming
Shey
hello
Francis
hello
Xotambek
hi
Peterson
how r u my friends ?
Xotambek
l would like to know what do I need if I want to.create a sun glasses where you can see everything when you're sharing something via bluetooth
Peterson
hi
Peterson
I have so many things that I want to create in the technology industry
Peterson
but I need a group of people who are willing bring ideas on the table and work together to make success
Peterson
wow
Shey
What sorts of feild knowledge do you need?
leo
Mr. Peteson pinchinat, hello!
leo
I don't really know what do I need to learn that's why I'm asking
Peterson
I need help to create all those things that I want to.
Peterson
peterson pinchinat I have so many ideas and much more things in my mind
Khizer
hello
Purity
even Me guys
Mark
if you have many ideas than I have so let's work together let's build a team . let's put our ideas and start working together to make success.
Peterson
I really like to work with software
Khizer
any I like that people how have interest on new technology and software developer, engineering
Khizer
wow!!! we have something in common.
Peterson
great then we can share some ideas and then see how we can make things happen
Peterson
so where we can do work
Khizer
we have to find a way. I'm living in Brooklyn what about you?
Peterson
there we shared work
Khizer
I know people from India they are really good in compute
Peterson
thanks
Khizer
first we need to find out how we gonna work. I know the distance won't be a problem we need to trust each other and create a great team then bring revolution in the technology
Peterson
I have an idea
Khizer
ok
Peterson
send me the website?
Peterson
wait for a 2 days I make that and tell you ok
Khizer
perfect
Peterson
good
Shey
Yes ,It is possible to be a programmer without University Degree.You have a lot professional courses that you access and register for on the net.Please get hook and search ..thanks
NICCK-PAT
Great ,I am NICCk-PAT in Paris France.
NICCK-PAT
hello
Dustin
how do i create software
Ahmad Reply
Hii
Sameer
what is the IEEE ?
Shankar Reply
a external device cable capable of transferring large amounts of data at high speed.
Dustin
really
Shey
How to learn in this app? ..help me
HANAN Reply
how make a software engineer
Ajaykumar Reply
how to use this app ..help me
HANAN
what is incremental model?
Shir Reply
explain software proses explain with kannada
preethi Reply
please and my qution
preethi
best project for bsc students
Mounika Reply
software engineering best project for bsc students
Mounika
Tell me medam what is the project do you have
Harinathreddy
software engineering
Mounika
Let you explain for me about that project
Harinathreddy
hii
Sameer
I'm in!!
Amanson
hii
Yogesh
can i ask you some questions
Yogesh
hi how are you
Ahmad
guy's please I need you to tell me more about software Engineering
Shey
am new in the field
Shey
what it the best app that can be use to code a software
Claude
no app
dawit
then how do they do it
Claude
differentiate between writing and jotting
Mmem Reply
configration management
Ravi Reply
what is a computer software
Chinaza Reply
Computer software is programming code executed on a computer processor at either the machine-level or the level of the operating system. ... The physical components of a computer are the hardware, and the digital programs running on the hardware are the software.
SATYAM
9292
Saeed

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