








Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
An overview of software systems analysis, focusing on systems, data representation, behavior modeling, and recent trends. Systems are defined as a set of interacting software components serving a useful purpose. Data representation includes conceptual data modeling, knowledge representation, and ontologies. Behavior modeling covers Petri nets and finite-state machines. Recent work includes form-oriented analysis, fisheye views, and extreme programming.
Typology: Exams
1 / 14
This page cannot be seen from the preview
Don't miss anything!









Abstract Software systems analysis is a field in which analysts continually learn new tech- niques and approaches to properly capture, maintain, understand, and develop more efficient and effective software systems. We begin this research area overview by defin- ing systems, systems analysis, and modeling. In subsequent sections, we focus on data and behavior representation of the system under study, prototyping, and formalism. Finally, we introduce some of the current work such as form-oriented analysis, fisheye views to support system analysis, and extreme programming and consider future work on software systems analysis such as extreme non-programming and new challenges for conceptual modeling.
By way of introduction, it is important to define software systems, systems analysis, and modeling.
Several authors have defined a software system: “a system is an assemblage of parts forming a complex or unitary whole that serves a useful purpose” [BF90], “a system is a group of interacting objects” [EKW92], and “a system is a set or arrangement of elements that are organized to accomplish some predefined goal by processing information” [Pre01]. From these definitions we draw our definition of a software system as a set of interacting software components that serve a useful purpose. The components themselves may be considered to be software systems; with respect to large systems they are considered to be subsystems.
Systems analysis is the study of a system under consideration (which may be real or imag- ined) [EKW92]. Its purpose is understanding and documentation of the essential charac-
teristics of the system being studied. Its eventual goal is to come up with a specification of the system under study.
A model provides the blueprints of a system [BRJ99]. A good model includes all the effec- tive components in the system under study and ignores all elements that are not relevant. Modeling provides a better understanding and visualization of the system under study. Every system can be described from different aspects using different models. A model may emphasize components and their relationship to other components in the system un- der study, the behavior of each component in the system or the interactions among the components in the system under study.
2 Representation—Data
During analysis, analysts represent the data of the system under study in terms of metadata concepts and relationships. Metadata helps the analysts focus more easily on matching the data representation to the requirements of the system under study. We consider three representations of data that are commonly used in systems analysis: conceptual data modeling, knowledge representation, and ontologies.
In software systems analysis, conceptual data models have proven to be quite successful for representing data at a higher level of abstraction. Conceptual models represent components and their relationship to other components in the system under study in a graphical way at a conceptual level. Some of the well known conceptual models are ER [Che76], ORM [Hal01], ORM [EKW92], and UML [BRJ99]. (Note that “ORM” in [Hal01] is Object-Role Modeling and is pronounced “orm”, while “ORM” in [EKW92] is Object-Relationship Model and is pronounced “O”-“R”-“M”.)
making use of classes, class properties, object instances, and inheritance. Semantic networks are used basically as a visual representation. Common relationships are is-a, has-a, owns, and made from.
An ontology in philosophy refers to a conceptualization of what can exist or what can be in the world [Bun77]. Ontologies have been used as a source of theory to investigate tools and techniques used in the analysis and design of information systems. A key development in the use of ontologies for the study of information systems is the work of Wand and Weber [WW90], based on Bunge’s ontology [Bun77, Bun79]. A common working definition of an ontology is Gruber’s statement that an ontology is an explicit specification of a shared conceptualization [Gru93]. Ontologies are used in systems analysis for the following three reasons: (1) ontologies facilitate the process of identifying the requirements of the system and understanding the relationships among the components of the system under study; (2) ontologies improve the reliability of software systems; and (3) ontologies facilitate the design of reusable systems. Many concrete ontologies have been developed. In knowledge representation, well known contributions include Ontolingua [Gru93], CYC [LG90], and the XML based schemas, the latest of which is OWL [HPSH03].
developed with Ontolingua is typically defined by: relations, classes (treated as unary relations), functions (defined like a relation), individuals (distinguished objects), and axioms (relating these terms).
There is no strict line between ontologies and conceptual data models, but ontologies are typically more general and more reusable; are intended for multiple purposes, goals, and users; are more easily shareable; and take a stronger stand on semantics of concepts.
3 Representation—Behavior
An important goal of analysis is to capture and communicate not only the static aspects of a system under study, but also its dynamic behavior. Behavior may be the behavior of each component in the system or interactions among the components in the system under study. There are several behavior models commonly used to describe the behavior of the system under study including Petri nets [Pet77], finite-state machines [Cho78], statecharts [Har87], and state nets [EKW92].
and transitions. Transitions are represented as rectangular boxes with a horizontal dividing line. The upper part of a transition box contains its trigger. A trigger gives the condition that, when met, may cause the transition to fire. The lower part of a transition box contains its action, if any. Actions are operations that take place when the transition fires. Arrows (directed arcs) connect one or more states to a sin- gle transition. Arrows may have single-heads/single-tails, single-heads/multiple-tails, or multiple-heads/single-tails. Arrows that point to transitions are called in-arrows, while arrows that point away from transitions are called out-arrows. An in-arrow always has a single head. An out-arrow always has a single tail. State nets can have both inter-object concurrency and intra-object concurrency. Inter-object concurrency happens when several objects are in various states and transitions at the same time. Intra-object concurrency happens when an object instance is in more than one state or transition of a single copy of a state at any point in time.
4 Prototyping
Prototyping is the technique of constructing a partial implementation of a system so that customers, users, or developers can learn more about a problem or a solution to that problem [Dav92]. It is a partial implementation because if it were a full implementation, it would be the system, not a prototype of it. There are at least two types of prototyping—throwaway and evolutionary.
5 Formalism
Formal methods are mathematically based techniques for describing system properties. Formalization can lead to models that are: (1) consistent such that no contradiction remains
between specified components; (2) complete which guarantees all the needed information is present; and (3) unambiguous such that all information used is precisely defined. At present, formal methods have not gained the level of use that many had hoped for. There are several reasons: (1) formal specification focuses on function and data (timing, control, and behavioral aspects of a problem are more difficult to represent); (2) some elements of a problem (e.g. human/machine interfaces) are better specified using graphical techniques or prototypes; and (3) formal methods typically require understanding of various types of logics, set theory notation, and predicate calculus. Although formal methods are not as yet used widely in the industry, when used they do offer substantial advantages over less formal techniques. A variety of formal specification languages are in use today, including Communicating Sequential Processes (CSP) [Hoa85], Vienna Development Method (VDM) [Jon91], and Z [Spi89].
Another example of formalism is Description Logics (DLs) [BCM+03] which are for- malisms commonly used for knowledge representation. The semantic characterization of
A recent technique introduced in [TSSO04] uses fisheye views as an aid to systems analysis and design. The idea is to make the conceptual models able to represent an entire system and a specific part of the system at the same time. The designer in this case can see a subprocess in the context of the entire system, while emphasizing a subprocesses of interest by enlarging the scale. The advantages of using fisheye views are to increase the effectiveness of system design due to the ability to recognize and eliminate redundancy and to effectively see linkages between subsystems. Actually, this is similar to high-level abstract views introduced more than decade ago in [EKW92]. High level abstractions reduce the complexity in large models. Their purpose is to represent fundamental system concepts, whereas lower level abstractions unfold sup- porting detail. Rather than using fisheye views, high-level constructs are shaded. When they are imploded, the shading shows that the designer can explode them to reveal more information. When they are exploded, the shading helps show the extent of the high-level construct.
Although some people consider XP primarily as programming, it also includes the under- standing and documentation steps of systems analysis. XP was originated by Kent Beck [Bec00] as a new methodology for small-sized teams developing software with vague or rapidly changing requirements. XP techniques can be viewed as methods for rapidly build- ing and disseminating institutional knowledge among members of a development team. The goal is to give all developers a shared view of the system which matches the view held by the users of the system. To this end, XP favors simple designs, metaphors, collaboration of users and programmers, frequent verbal communication, and feedback. In XP, the analyst and the developer are no longer separate; they are basically united in a single unit. In XP, progress during software development is measured and tracked based on the how well the code implements the observable behavior of the system. The code is the model. XP discourages documentation by making the requirement from the team only the code. When developing software systems with XP, the customer is asked to sit with the XP development team. Early on, the customer describes the system as a set of stories which are high-level statements of what the features of the system to be implemented should be. Stories are recorded on index cards. Developers estimate how long each story will take to implement. The customer decides, based on value and cost, the order in which stories will be developed. The team works iteratively: the customer writes tests and answers questions
while the programmers program. The XP customer has frequent opportunities to change the team’s direction if circumstances change. Because testing is so prominent, the customer is aware of the project’s true status much earlier. Some of the drawbacks of XP are: (1) it is designed for a single small team of fewer than a dozen team members; therefore it has problems scaling up for large projects; and (2) XP may not be applied to a system where planning ahead is necessary.
7 Summary and Future Directions
In conclusion, software systems analysis has been here for a long time, and it covers a lot of things. We introduced some of its major aspects such as data and behavior representation of the system under study, prototyping, and formalism. In addition, we presented some of the recent work in that field. As we conclude, we mention some of the future directions in the field: extreme non-programming and new challenges for conceptual modeling.
Tony Morgan in his keynote address at ISTA in July 2004, introduced the idea of extreme non-programming, which is a challenge in developing software systems. He motivated the change in the development process of software systems as follows: (1) the overall process of developing software has not changed much since the 1960s; (2) currently produced software is expensive, takes a long time to develop, and has low quality; and (3) most problems arise during analysis and specification in software development. In 80% of the cases the majority of problems can be traced back to the lack of a sufficient clear definition of project requirements. In extreme non-programming the process of developing software systems is the follow- ing: First the customers describe their needs to the analyst. The analyst translates the customers’ description into a model. Then the machine generates a human-readable view of that model which allows customers to clear up any misunderstandings before going fur- ther. A model can keep changing until the description is acceptable to the analyst and the customers. The next step is to automatically translate the model into code. In XNP, both the customers and the analyst share the same description of the problem; but they handle it in the way that is best suited for each. Potential benefits of applying extreme non-programming are: (1) fast development for a software system; and (2) improved software quality.
[Bun79] M.A. Bunge. Treatise on Basic Philosophy: Vol. 4: Ontology II: A World of Systems. Reidel, Boston, Massachusetts, 1979.
[Che76] P.P. Chen. The entity-relationship model—toward a unified view of data. ACM Transactions on Database Systems, 1(1):9–36, March 1976.
[Cho78] T.S. Chow. Testing design modeling by finite-state machines. IEEE Transac- tions on Software Engineering, 4(3):178–187, May 1978.
[Dav92] A. M. Davis. Operational prototyping: a new development approach. IEEE Software, 9(5):70–78, 1992.
[DW04] D. Draheim and G. Weber. Form-Oriented Analysis. Springer Verlag, Berlin, Germany, 2004.
[EKW92] D.W. Embley, B.D. Kurtz, and S.N. Woodfield. Object-oriented Systems Analy- sis: A Model-Driven Approach. Prentice Hall, Englewood Cliffs, New Jersey,
[Gri82] R. Griffith. Three principles of representation for semantic networks. ACM Transactions on Database Systems, 7(3):417–422, September 1982.
[Gru93] T. Gruber. A translation approach to providing portable ontology specifications. Knowledge Acquisition, 5(2):199–220, 1993.
[Hab91] N. Habra. Computer-aided prototyping: transformational approach. Informa- tion and Software Technology, 33(9):684–697, 1991.
[Hal01] T. Halpin. Information Modeling and Relational Databases. Morgan Kaufman, San Francisco, California, 2001.
[Har87] D. Harel. Statecharts: a visual formalism for complex systems. Science of Computer Programming, 8:231–274, June 1987.
[Hoa85] C.A.R. Hoare. Communicating Sequential Processes. Prentice-Hall Interna- tional, Englewood Cliffs, New Jersey, 1985.
[HPSH03] I. Horrocks, P.F. Patel-Schneider, and F.V. Harmelen. From SHIQ and RDF to OWL: The making of a web ontology language. Web Semantics, 1(1):7–26,
[JEW95] R.B. Jackson, D.W. Embley, and S.N. Woodfield. Developing formal object- oriented requirments specifications: A model, tool and technique. Information Systems, 20(4):273–289, 1995.
[Jon91] C.B. Jones. Systematic Software Development Using VDM. Prentice-Hall, Lon- don, England, 1991.
[LG90] D.B. Lenat and R.V. Guha. Building Large Knowledge-Based Systems. Addison- Wesley, Reading, Massachusetts, 1990.
[Min75] M. Minsky. A framework for representing knowledge. In P.H. Winston, ed- itor, Principles of Semantic Networks: Explorations in the Representation of Knowledge, pages 211–217. McGraw-Hill, New York, New York, 1975.
[Pet77] J. Peterson. Petri nets. ACM Computing Surveys, 9(3):223–52, 1977.
[Pre01] R.S. Pressman. Software Engineering a Practitioner’s Approach. McGraw-Hill, Burr Ridge, Illinois, 2001.
[Spi89] J.M. Spivey. The Z Notation: A Reference Manual. Prentice-Hall, Englewood Cliffs, New Jersy, 1989.
[TSSO04] O. Turetken, D. Schuff, R. Sharda, and T.T. Ow. Supporting systems analysis and design through fisheye views. Communication of the ACM, 47(9):72–77, September 2004.
[TYF86] T.J. Teorey, D. Yang, and J.P. Fry. A logical design methodology for relational databases using the extended entity-relationship model. ACM Computing Sur- veys, 18(2):197–222, June 1986.
[WW90] Y. Wand and R. Weber. An ontological model of an information system. IEEE Transactions on Software Engineering, 16(11):1282–1292, November 1990.