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