- Ravideveloper.com

Transcription

- Ravideveloper.com
Ravi Vyas (S2889549)
Software Architecture (Individual Essay) (3412ict)
Lecturer: Dr. Larry Wen
Student Name: Ravi Vyas Student ID: s2889549
Workshop No: 3 Group No: 5
Abstract
respective doctors for the long-familiar paper called
“Software Architecture”.
Software Architecture is the most essential
characteristic to decide a quality of the software
solution. Although, since the invention of the software
system, it has become more complex and the size has
increased over the period. The paper examines two
papers from the past and compare with their early
architectural techniques with the current architecture
technique. Due to the evolution in the software
architecture field, new requirements are driven and it
may not be evaluated by everyone.
The reason of writing this essay is, the software
architecture field has been developed over the period,
which is one of the reasons in the increment of new
requirements. It has led the writer to contribute his
works in the software architecture field because nontechnical people would not be able to understand many
terms. In addition, software architect has a major
responsibility to simplify it.
Important Keywords- Modularization, Abstraction
Programming, Pipes and Filters, Modules and
Objective Oriented Programming.
The essay further demonstrates two crucial sections
which are discussion and critical analysis. The
conclusion and references are added respectively.
2. Discussion
1. Introduction
Software architecture allows developers to study the
software in far better ways and facilitates them to
evaluate the system design at the early stage of a
development phase (Shaw, M (1989).
The paper studies two early stage papers about
software architecture. The first one was written by Dr.
Parnas 36 years ago (Parnas, D. L. (1972) and the
second one was published nearly 21 years ago by Mary
Shaw (Shaw, M (1989). Dr. Parnas is well known for
his priceless contribution in the software architecture
field. In addition, he has invested his valuable time in
modular programming that is the crucial part of an
objecting oriented programming language at the
existing programming level. Modularization permits
developers to divide the large amount of codes in
minor chunks, and increase flexibilities and
comfortableness (Parnas, D. L. (1972). Dr. Mary
Shaw is an author of the second paper. She has
worked in the software architecture field for her entire
life. She is renowned and highly appreciated by other
1
There are several pros and cons for both of the papers.
The first one is about analyzing an Index Production
System whereas the second one has concentrated on
objective oriented programming and its features. The
section has divided into three subsections showing the
advantages of works respectively. Last paragraph
describes regarding missing points by them.
2.1 List of Positive Features of the first paper
1.
2.
3.
4.
5.
6.
The detail background of Modular
Programming.
Two different ways to approach a
decomposition of the system or software.
The flowchart technique to develop a product.
Modules considered as an assignment.
Objective oriented programming features
Various algorithms to formulate the software.
2.2 List of Positive Features of the second paper
1.
2.
Abstraction programming
Two algorithms – Pipes and Filters
Software Architecture Individual Essay (Ravi Vyas) (3412ict)
Ravi Vyas (S2889549)
3.
4.
Several software patterns.
Various stages of software analysis.
2.3 Similarities and Differences
Dealing with Large Scale Software and Order of
Alphabets
The experiment has executed in small scale software
only. The experiment has executed in small industries.
2.3.1 Similarities
3.0 Critical Analysis
Modular Programming and Algorithms
Both papers have examined about the modular
programming. Parnas has introduced algorithm data
types; however, Shaw had an insight about it and
provides numerous examples.
3.1 Examination of two papers
Objective Oriented Programming and System
Approach
Both writers have applied OOP approach. Both papers
illustrate how to divide the project into small chunks
and various tasks.
2.3.2 Differences
Abstraction programming in details and Defining
Handbooks
Shaw has written abstraction programing in depth,
however, Parnas major focus was on the modular
programming. At the conclusion, Parnas discovered
that, there were a bunch of redundancy from the
beginning and realized the fact the handbooks are
essentials. Shaw had supported that and included those
handbooks in her work.
Defining Structure and Decompostions of a Module
Parnas had never implemented any structural behavior
of the system or software. Shaw has utilized the
structure and displays each step in depth.Parnas has
decomposed several modules in small scale modules,
which would have a mass of tasks to do. Although,
Shaw had accessed different techniques such as pipes
and filters.
2.4 Missing Factors by Pranas and Shaw
Missing Authoritative Document and Way of
Storing Data
Modularization has illustrated several steps to complete
the task, but certainly missing the document. Both
modularizations have shown an authentic way of
storing data using core.
Modular Programming and System Examine
Parnas has focused majorly on the benefits of modular
programming. It assists developers to divide their tasks
in several other parts; hence each team can work
simultaneously. Eventually, it prevents time issues.
Modular programming itself is a best remedy and a tool
for the time management and allows programmers to
change the programming code at any certain point.
Furthermore, it is a top level programming style which
builds an accurate system (Berry, G., & Gonthier, G.
(1992).The paper illustrates two ways to develop a
design of the project. Each modularization is a part of
the blue print. It enhances the usability of software or
the system. Usability is a significant attribute whilst
software architecture designs (Bass, L., & John, B. E.
(2003).
Developing a product by Flowchart and Modules
Parnas mentioned various techniques to develop
software, including an ancient type called flowchart.
The flow chart is a convenient way for small scale
software and definition (Brumley, J., & Feiereisel, N.
(1999).The software usually divides in bunch of tasks
which can be known as a subprogram. However, in the
paper, the writer has used different tactics and had
separated tasks in individual assignment called
“Module”.
Object Oriented Programming Features and
Certain Algorithms
The second modularization has used various OOP
(Objective Oriented Programming) techniques, such as
a function. The function allows minimizing the code
and restricting the repetition. Moreover, classes are
utilized at each module which is a basic necessity of
any programs indeed. Each modularization has
followed a specific algorithm to maintain the
effectiveness and presentation lookout of the software
efficiently and with satisfaction.
Abstraction Programming and Algorithms
The abstraction programming has become mature over
the period, according to Shaw, such programming
2
Software Architecture Individual Essay (Ravi Vyas) (3412ict)
Ravi Vyas (S2889549)
techniques has involved since 30 years. It includes
algorithms, structures and data types which are a part
of modular programming. It facilitates developers to
remove the programming obstacles and completions,
which is still exists at AI (Artificial Intelligence)
programming level (Frantz, F. K. (1995, December).
Pipes and filters algorithm permit to bring small chunks
of modules together and emphasize the final output.
Technically, it has two modules that enable one after
the other in the form of process. When a user enters an
input, then it goes to the filter area by streaming and
eventually, the User Interface displays an output.In
Parnas work, he had introduced an OOP technique
which is indeed most important till the date. In today’s
world, most of the programming languages are based
on OOP functionalities such as C++, Java, C#,
Objective C and Swift. However, Shaw had put some
more thought into it and invented 3 other crucial
systems such as Data Abstraction, Layered Systems,
Rule based System and Blackboard System.
Several Stages of Software Analysis
The writer has written ample of the essential stages of
the software analysis, such as Informal Description,
Abstract Model, Syntax, Semantics, Evaluation
Criteria,
Implementation,
Design
Dimension,
Engineering Considerations, Selection Criteria and
History. If a developer would follow all these stages,
then it is completely forecasted that the software would
be successful without any errors and the end users can
employ the software effectively, efficiently also with
satisfaction.
3.2 Real-world Examples and Open Issues
In today’s era, software architects have several
obstacles and duties, which they have to complete in
order to cater an absolute shape to the software. In
these papers few points are derived as open issues such
as to define a document and plan, communication with
stakeholders, fulfill the needs of clients, rectify
technical difficulties and plan for new possible
outcomes. Few open issues and real world examples
are defined as follows (Perry, D. E., & Wolf, A. L.
(1992).
(Note that there are many more examples, but these
are only used as an example and as per the writer’s
knowledge)
3
Open Issue Example – YouTube
YouTube is a video sharing website, which facilitates
users to upload and download any kind of videos. The
videos could be related to study or entertainment
purpose (Keen, A. (2007). However, YouTube has
many software architecture design issues. For instance,
producing broadcasted system in order to keep the
main server smooth with less burden. Furthermore, It
has various video player problems, such as HTML5,
flash player browser supports. Lastly, User
Authentication is one of the main software architecture
issues for this website (Faeq, Y. (2013).
4 .0 Conclusion
In conclusion, the importance of a software architect in
the software field is very crucial. Both writers have
illustrated several steps to develop the software.
However, they both forgot to apply software
architecture document, putting in a nutshell, the
software industry without software architects is like a
tree without its roots.
5.0 Reference
[1] Bass, L., & John, B. E. (2003). Linking usability to
software architecture patterns through general scenarios.
Journal of Systems and Software, 66(3), 187-197.
[2] Berry, G., & Gonthier, G. (1992). The Esterel
synchronous programming language: Design, semantics,
implementation. Science of computer programming, 19(2),
87-152.
[3] Brumley, J., & Feiereisel, N. (1999). U.S. Patent No.
5,926,775. Washington, DC: U.S. Patent and Trademark
Office.
[4] Clements, P., Garlan, D., Bass, L., Stafford, J., Nord, R.,
Ivers, J., & Little, R. (2002). Documenting software
architectures: views and beyond. Pearson Education.
[5] Frantz, F. K. (1995, December). A taxonomy of model
abstraction techniques. In Proceedings of the 27th
conference on Winter simulation (pp. 1413-1420). IEEE
Computer Society.
[6] Parnas, D. L. (1972). On the criteria to be used in
decomposing systems into modules. Communications of the
ACM, 15(12), 1053-1058.
[7] Perry, D. E., & Wolf, A. L. (1992). Foundations for the
study of software architecture. ACM SIGSOFT Software
Engineering Notes, 17(4), 40-52.
[8] Shaw, M. (1989). Large Scale Systems Require HigherLevel Abstractions. Proceedings of the Fifth International
Workshop on Software Specifications and Design, 143-146
[9] Keen, A. (2007). The Cult of the Amateur: How blogs,
MySpace, YouTube, and the rest of today's user-generated
media are destroying our economy, our culture, and our
values. Broadway Business.
Software Architecture Individual Essay (Ravi Vyas) (3412ict)