IUST Advanced software engineering course by Dr. Saeed Parsa. Credits of slides belong to Dr. Saeed Parsa and IUST reverse engineering research laboratory. All slides are available publicly due to COVID 19 Pandemic.
The document is a guide by Morteza Zakeri for getting started with ANTLR in Visual Studio 2019, focusing on C# integration, setting up the environment, and implementing analysis tools. It covers the differences between listeners and visitors, outlines several assignments and projects related to language processing, and emphasizes the development of a comprehensive tool for program analysis. The latter part includes instructions for coding practices and references for further reading.
ANTLR is a parser generator that takes a grammar as input and produces source code for a language recognizer, supporting multiple programming languages such as Java, C#, and Python. The latest version, ANTLR v4, introduces features like automatic left-recursion handling and emphasizes the use of listener and visitor design patterns over embedded actions in grammar. ANTLR is widely used in academia and industry, including applications like Twitter query parsing and Oracle's SQL Developer.
This document provides an introduction to building language applications using ANTLR in Java. It covers integrating a generated parser, creating a starter project called 'arrayinit', and translating input data using listener methods. The guide emphasizes the ease of implementation and reusability of grammar components in language applications.
The document provides an overview of the .NET Compiler Platform, known as Roslyn, highlighting its features such as open-source nature, APIs for code analysis, and a new way to interface with compilers. It details installation instructions for the .NET Compiler Platform SDK within Visual Studio, describes various components like syntax trees, tokens, and semantic analysis, and outlines how to perform code analysis tasks. Additionally, it presents step-by-step guidance on creating a C# stand-alone code analysis tool project using Roslyn's capabilities.
The document emphasizes the principles of clean coding, describing it as a combination of technique and skill that enhances understandability, maintainability, and readability. Key practices include using descriptive names, avoiding duplication, ensuring functions have a single responsibility, and adhering to standard conventions. The author also highlights the importance of clarity in code structure and comments to prevent misunderstandings.
The document discusses design smells in software engineering, emphasizing their negative impact on software quality due to violations of fundamental design principles. It outlines various types of design, architecture, and implementation smells, as well as the importance of metrics for identifying these issues. Technical debt is highlighted as a critical concern, reflecting discrepancies between promised and delivered software quality.
The document outlines the principles and steps involved in Test Driven Development (TDD), emphasizing the sequence of writing tests before code and refactoring after passing. It details the benefits of TDD, such as modular and flexible code, and provides an example using a C# class for geometric objects. Additionally, it discusses the process of creating and running unit tests using NUnit in a Visual Studio environment.
The document discusses the importance of modularity in software engineering, emphasizing features such as coherent components, loose coupling, and ease of understanding, reuse, and modification. It outlines principles for effective design, including hierarchical decomposition, balancing component sizes, and the distinction between top-down and bottom-up approaches. Additionally, it highlights the significance of designing systems that allow for independent problem-solving, reusability, and minimizing side effects from runtime errors.
The document provides an overview of the Unified Modeling Language (UML) 2, which includes 13 diagram types divided into structural and behavioral categories to support model-driven architecture. It discusses various architectural views such as use case, logical, process, component, and development views to address distinct stakeholder needs. Additionally, it outlines the use case model, detailing how it illustrates system functionality as perceived by users and capturing interactions within the development process.
The document discusses the use of the 'Enterprise Architect' tool for requirements modeling, emphasizing its features like UML element management, requirements tracing, and specification documentation. It also covers various methods for requirements specification and the functionalities of the Specification Manager, alongside details about the analysis and design of an online shopping system. Furthermore, it describes the roles of different stakeholders such as administrators, suppliers, and customers within the system.
The document outlines the software development life cycle, detailing phases from planning and requirements to evaluation and testing, along with advantages and disadvantages of the approach. It emphasizes the importance of stakeholder involvement in requirements elicitation and defines roles within an organizational structure related to project management and software development. Additionally, it discusses functional and non-functional requirements for an online shopping system, detailing user interactions and system capabilities.
This document describes the architectural design of SpotifyX, a framework for applications like Spotify. It includes an introduction and outlines the key features, architectural blueprints using the 4+1 view model, and logical class diagrams for some of the main microservices - media streaming, search, and recommendation. The document is presented as part of a university course on software architectures.
SQLite and object-relational mapping in JavaMorteza Zakeri
油
This document provides an introduction to using object-relational mapping (ORM) with SQLite in Java. It discusses the advantages of ORM and object-oriented programming. It then covers installing the SQLite ORM library, connecting to a database, and performing basic CRUD operations like create, read, update, and delete using both the ORM and equivalent SQL statements. The key benefits of ORM like reduced development time and improved maintainability are highlighted.
Apache Mesos: Architecture, Design and Code ReviewMorteza Zakeri
油
This document provides an overview of the Apache Mesos distributed systems framework. It discusses Mesos' architecture for sharing computer clusters between multiple frameworks like Hadoop and MPI. Mesos uses a master-slave model with the master offering resources to frameworks, which can then launch tasks on slave nodes. The document reviews Mesos' design decisions, implementation in C++, strengths like modularity, and weaknesses like some duplicate abstractions. It also analyzes Mesos' source code structure and identifies areas for design improvement.
Bridge Management System Using NoSQL SolutionsMorteza Zakeri
油
This document introduces bridge management systems and describes how the multi-model NoSQL database OrientDB can be used to develop a bridge information network. It discusses the challenges of traditional bridge management systems and how OrientDB addresses these challenges through its flexible data model, distributed architecture, and ability to handle large datasets and switch between online transaction processing and online analytical processing workloads. The document provides an overview of key OrientDB concepts and capabilities.
Extracting architectural model of software from source codeMorteza Zakeri
油
This document outlines a process for extracting an architectural model from source code. It begins with understanding dependencies between classes and creating a class dependency graph. This graph is then clustered using the Bunch tool to group related classes. The clusters are then modeled in Rational Rose to extract and visualize the architectural design. The goal is to recover an implicit architecture when documentation is unavailable or outdated.
Mesos is a platform for sharing computer clusters between diverse frameworks such as Hadoop, MPI, and Pregel. It achieves high utilization by offering resources to frameworks at a fine-grained level of individual tasks. Frameworks' schedulers select which offered resources to use, balancing decentralization with scalability. Mesos' experiments show it improves utilization and speeds up workloads compared to static partitioning of clusters between frameworks.
Oracle Grid Engine is a grid computing software that manages computer clusters and scheduling of jobs. It accepts, schedules, runs and manages large numbers of user jobs across distributed resources such as processors and memory. The document discusses the history, architecture, basics, and scheduler of Oracle Grid Engine. It describes how the scheduler prioritizes jobs and assigns them to resources using policies for job selection and scheduling.
Introduction to Web Programming: PHP vs ASP.NETMorteza Zakeri
油
An Introduction to Web Programming Languages and Technologies:
Compare two most popular server side programming language PHP and ASP.NET
By: Morteza Zakeri and others.
The document analyzes the user interface of the Tutorials Point website. It finds that the website has a simple and easy to use interface that loads quickly. It groups content efficiently but has some weaknesses like different appearances across pages and browser dependency. It provides advice to address these, including using site masters for consistency and more coloring to categorize content.
This document provides an introduction to ANTLR, including:
- What ANTLR is and how it works by taking a grammar specification and generating source code for a parser
- A brief history of ANTLR and examples of its common uses
- An overview of new features in ANTLR v4 like supporting all grammars and generating listener and visitor classes
- Steps for getting started with ANTLR and examples of simple grammars and language applications built with ANTLR
The document provides an overview of the Unified Modeling Language (UML) 2, which includes 13 diagram types divided into structural and behavioral categories to support model-driven architecture. It discusses various architectural views such as use case, logical, process, component, and development views to address distinct stakeholder needs. Additionally, it outlines the use case model, detailing how it illustrates system functionality as perceived by users and capturing interactions within the development process.
The document discusses the use of the 'Enterprise Architect' tool for requirements modeling, emphasizing its features like UML element management, requirements tracing, and specification documentation. It also covers various methods for requirements specification and the functionalities of the Specification Manager, alongside details about the analysis and design of an online shopping system. Furthermore, it describes the roles of different stakeholders such as administrators, suppliers, and customers within the system.
The document outlines the software development life cycle, detailing phases from planning and requirements to evaluation and testing, along with advantages and disadvantages of the approach. It emphasizes the importance of stakeholder involvement in requirements elicitation and defines roles within an organizational structure related to project management and software development. Additionally, it discusses functional and non-functional requirements for an online shopping system, detailing user interactions and system capabilities.
This document describes the architectural design of SpotifyX, a framework for applications like Spotify. It includes an introduction and outlines the key features, architectural blueprints using the 4+1 view model, and logical class diagrams for some of the main microservices - media streaming, search, and recommendation. The document is presented as part of a university course on software architectures.
SQLite and object-relational mapping in JavaMorteza Zakeri
油
This document provides an introduction to using object-relational mapping (ORM) with SQLite in Java. It discusses the advantages of ORM and object-oriented programming. It then covers installing the SQLite ORM library, connecting to a database, and performing basic CRUD operations like create, read, update, and delete using both the ORM and equivalent SQL statements. The key benefits of ORM like reduced development time and improved maintainability are highlighted.
Apache Mesos: Architecture, Design and Code ReviewMorteza Zakeri
油
This document provides an overview of the Apache Mesos distributed systems framework. It discusses Mesos' architecture for sharing computer clusters between multiple frameworks like Hadoop and MPI. Mesos uses a master-slave model with the master offering resources to frameworks, which can then launch tasks on slave nodes. The document reviews Mesos' design decisions, implementation in C++, strengths like modularity, and weaknesses like some duplicate abstractions. It also analyzes Mesos' source code structure and identifies areas for design improvement.
Bridge Management System Using NoSQL SolutionsMorteza Zakeri
油
This document introduces bridge management systems and describes how the multi-model NoSQL database OrientDB can be used to develop a bridge information network. It discusses the challenges of traditional bridge management systems and how OrientDB addresses these challenges through its flexible data model, distributed architecture, and ability to handle large datasets and switch between online transaction processing and online analytical processing workloads. The document provides an overview of key OrientDB concepts and capabilities.
Extracting architectural model of software from source codeMorteza Zakeri
油
This document outlines a process for extracting an architectural model from source code. It begins with understanding dependencies between classes and creating a class dependency graph. This graph is then clustered using the Bunch tool to group related classes. The clusters are then modeled in Rational Rose to extract and visualize the architectural design. The goal is to recover an implicit architecture when documentation is unavailable or outdated.
Mesos is a platform for sharing computer clusters between diverse frameworks such as Hadoop, MPI, and Pregel. It achieves high utilization by offering resources to frameworks at a fine-grained level of individual tasks. Frameworks' schedulers select which offered resources to use, balancing decentralization with scalability. Mesos' experiments show it improves utilization and speeds up workloads compared to static partitioning of clusters between frameworks.
Oracle Grid Engine is a grid computing software that manages computer clusters and scheduling of jobs. It accepts, schedules, runs and manages large numbers of user jobs across distributed resources such as processors and memory. The document discusses the history, architecture, basics, and scheduler of Oracle Grid Engine. It describes how the scheduler prioritizes jobs and assigns them to resources using policies for job selection and scheduling.
Introduction to Web Programming: PHP vs ASP.NETMorteza Zakeri
油
An Introduction to Web Programming Languages and Technologies:
Compare two most popular server side programming language PHP and ASP.NET
By: Morteza Zakeri and others.
The document analyzes the user interface of the Tutorials Point website. It finds that the website has a simple and easy to use interface that loads quickly. It groups content efficiently but has some weaknesses like different appearances across pages and browser dependency. It provides advice to address these, including using site masters for consistency and more coloring to categorize content.
This document provides an introduction to ANTLR, including:
- What ANTLR is and how it works by taking a grammar specification and generating source code for a parser
- A brief history of ANTLR and examples of its common uses
- An overview of new features in ANTLR v4 like supporting all grammars and generating listener and visitor classes
- Steps for getting started with ANTLR and examples of simple grammars and language applications built with ANTLR
2. 4/21/2020 S. Parsa (www.parsa.iust.ac.ir) 2
For an in-depth understanding of use case issues, it is a good idea to refer to
the book provided by the Founder of Use Cases, Jacobson.
https://www.ivarjacobson.com/sites/default/files/field_iji_file/article/use-case_2_0_jan11.pdf
4. 4/21/2020 S. Parsa (www.parsa.iust.ac.ir) 4
Use Case View?
Captures system functionality as seen by users Built in early stages of development Developed
by analysts and domain experts System behavior, that is what functionality it must provide, is
documented in a use case model.
Use Case Model illustrates the systems intended functions (use cases), its
surroundings (actors), and relationships between the use cases and actors (use
case diagrams)
High level architecture
5. 4/21/2020 S. Parsa (www.parsa.iust.ac.ir) 5
Actor ?
An actor is a person, organization, or external
system that plays a role in one or more
interactions with your system. Actors are
drawn as stick figures.
Orderer - someone who places an order to buy.
Warehouse Office Clerk is to assist in
performing the daily administrative
and organizational functions of the
warehouse office.
o Warehouse Clerk is responsible for
ensuring that products are registered and
packed correctly for shipping or storage.
6. 4/21/2020 S. Parsa (www.parsa.iust.ac.ir) 6
Use Case ?
A use case is a list of actions or event steps typically defining
the interactions between a role (known in the Unified Modeling
Language (UML) as an actor) and a system to achieve a goal.
7. 4/21/2020 S. Parsa (www.parsa.iust.ac.ir) 7
1. Association:
A relationship that represents communication between an actor and a use
case; can be navigable in both ways or in only one way.
2. Uses (includes) and extends are two types of relationships between use cases.
An extends relationship is used to show:
- Optional behavior
- Behavior that is only run under certain conditions,
- Different flows which may be run based on actor selection
A uses of includes relationship is used to show:
- functionality shared by multiple use cases.
- can be placed in a separate use case, related to these uses cases by a
uses relationship
11. 4/21/2020 S. Parsa (www.parsa.iust.ac.ir) 11
1. The application will record and maintain the product quantity in the
stock in the central database.
2. The storekeeper can remove products from the database.
3. The storekeeper can add products into the database.
4. The storekeeper can change the product quantity in the database.
5. The cashier can bill the item by manually entering the bar code or
with a bar code reader.
6. Only the products recorded in the database can be billed.
7. The billed items can be removed from the bill until it has been closed.
The retail support application requirements.
12. 4/21/2020 S. Parsa (www.parsa.iust.ac.ir) 12
8. The billed item removal must be approved by a store manager by
entering his authentication data.
9. The billed items will be printed on the cash desk bill as they are
entered. The bill will consist of the store name, billed items,
information on removed billed items, the total amount of money to
be paid, and date and time.
10. The product price can be entered or modified only by a properly
authenticated store manager.
The retail support application requirements.
Consider each use case as a capability to cover one or more requirements
13. 4/21/2020 S. Parsa (www.parsa.iust.ac.ir) 13
Consider each use case as a capability to cover one or more requirements
24. 4/21/2020 S. Parsa (www.parsa.iust.ac.ir) 24
Each use case is documented with a flow of events, use-case scenario,
which is a description of the events needed to accomplish the required
behavior.
The scenario is written in the language of the domain and describe what
the system should do and not how the system does it.
The flow of events should include:
-When and how the use case starts and ends
-What interaction the use case has with the actors
-What data is needed by the use case
-The normal sequence of events for the use case
-The description of any alternate or exceptional flows
25. 4/21/2020 S. Parsa (www.parsa.iust.ac.ir) 25
X Flow of Events for the Use Case
X.1 Preconditions & Postconditions
X.2 Main Flow
X.3 Subflows (if applicable)
X.4 Alternative Flows
Where X is a number from 1 to the number of use cases
26. 4/21/2020 S. Parsa (www.parsa.iust.ac.ir) 26
Main flow of events:
(E1) The use case starts when the system prompts the User for a PIN
number. The User can now enter a
PIN number via the keypad.
(E2) The User commits the entry by pressing the Enter button.
(E3) The system then checks this PIN number to see if it is valid. If the
PIN number is valid, the system acknowledges the entry, thus
ending the use case.
Subflows:
S1: The system invokes Validate use case.
27. 4/21/2020 S. Parsa (www.parsa.iust.ac.ir) 27
Alternative flow of events:
E1: The User can clear a PIN number any time before committing it and
reenter a new PIN number.
E2: The User can cancel a transaction at any time by pressing the Cancel
button, thus restarting the use
case. No changes are made to the Users account.
E3: If the User enters an invalid PIN number, the use case restarts. If this
happens three times in a row, the
system cancels the entire transaction, preventing the User from
interacting with the ATM for 30
minutes.
31. 4/21/2020 S. Parsa (www.parsa.iust.ac.ir) 31
Web Customer actor uses some web site to make purchases
online.
Top level use cases are View Items, Make
Purchase and Client Register.
View Items use case could be used by customer as top level use case
if customer only wants to find and see some products. This use case
could also be used as a part of Make Purchase use case.
Client Register use case allows customer to register on the web site,
for example to get some coupons or be invited to private sales.
Note, that
Checkout use case is included use case not available by itself -
checkout is part of making purchase.
33. 4/21/2020 S. Parsa (www.parsa.iust.ac.ir) 33
View Items use case is extended by several optional use cases -
customer may search for items, browse catalog, view items
recommended for him/her, add items to shopping cart or wish list.
All these use cases are extending use cases because they provide some
optional functions allowing customer to find item.
Customer Authentication use case is included in view
Recommended Items and Add to Wish List because both
require the customer to be authenticated.
At the same time, item could be added to the shopping cart without
user authentication.
35. 4/21/2020 S. Parsa (www.parsa.iust.ac.ir) 35
Checkout use case includes several required uses cases.
Web customer should be authenticated. It could be done through
user login page, user authentication cookie ("Remember me") or
Single Sign-On (SSO).
Web site authentication service is used in all these use cases, while
SSO also requires participation of external identity provider.
Checkout use case also includes Payment use case which could be
done either by using credit card and external credit payment service
or with PayPal.
37. 4/21/2020 S. Parsa (www.parsa.iust.ac.ir) 37
Main functional flow of an online shopping system
38. 4/21/2020 S. Parsa (www.parsa.iust.ac.ir) 38
An example of high level sequence
diagram for online bookshop. Online
customer can search book catalog,
view description of a selected book,
add book to shopping cart, do
checkout
39. 4/21/2020 S. Parsa (www.parsa.iust.ac.ir) 39
Each customer has unique id, linked to one account.
Account owns shopping cart and orders.
Customer could register as a web user to buy items online.
Customer could purchases by phone or by ordering from catalogues.
Web user has login name which also serves as unique id.
Web user could be in several states - new, active, temporary blocked,
or banned, and be linked to a shopping cart.
Shopping cart belongs to account.
40. 4/21/2020 S. Parsa (www.parsa.iust.ac.ir) 40
Account owns customer orders. Customer may have no orders.
Each order could refer to several payments, possibly none.
Every payment has unique id and is related to exactly one account.
Both order and shopping cart have line items linked to a specific
product.
Each line item is related to exactly one product. A product could be
associated to many line items or no item at all.
42. 4/21/2020 S. Parsa (www.parsa.iust.ac.ir) 42
As shown in the next slide, the webStore subsystem contains three components:
Search Engine, Shopping Cart, and Authentication.
Search Engine component allows to search or browse items by exposing provided
interface Product Search and uses required interface
Search Inventory provided by Inventory component.
Shopping Cart component uses Manage Orders interface provided by Orders
component during checkout.
Warehouses subsystem provides two interfaces Search Inventory and Manage
Inventory used by other subsystems and wired through dependencies.
44. 4/21/2020 S. Parsa (www.parsa.iust.ac.ir) 44
UML Deployment Diagram Example
45. 4/21/2020 S. Parsa (www.parsa.iust.ac.ir) 45
Package diagrams depict the organization of model elements into Packages
and the dependencies amongst them, including Package imports and
Package extensions. They also provide a visualization of the corresponding
namespaces.
46. 4/21/2020 S. Parsa (www.parsa.iust.ac.ir) 46
The Nesting connector between ConnSeq and
Controller reflects what the Package contents
reveal. The Package contents can be listed by
clicking on the diagram background to
display the diagram's 'Properties' dialog,
selecting the 'Elements' tab and selecting the
'Package Contents' checkbox in the 'Show
Compartments' panel
The 束import損 connector indicates that the elements within the
target Integer Package, which in this example is the single Class
Integer, have been imported into the Package Controller
If an element already exists within GenApply, such as Loader
and Time, these elements' definitions are expanded by those
included in the Package Controller. All elements added or
updated by the merge are noted by a generalization
relationship back to that Package.
75. 惡惆悋慍悋惘 惘惠悋惘 惠忰 悋擧悋慍
惘 惡 愆惆悋惘悋
愕忰
By Kaspersky Lab on October 30, 2013. 2:44 am
1-慍悋擧悴悋悋愀惘悋忰愆惆惆惘惺忰悋惠悋慍愀惘
愕悋愕惠悋惆悋慍悛愕惡拆悵惘悋悴惆惆悋愆惠.
2-悋愕惠悋惆惡愆悋慍忰惆悋慍悴悋悋悴惡惠悴惡愆悋慍
忰惆悋悴擧惘悋惡悋慍惡悋愆惆悋愕惠.惡悋惡惘
悋惴悋惘悋惠悋惘悋擧慍惡悋悴悋悋惘惆悋愕惠悋惆惆惘惡愆
悋慍愕惡悋惡慍悋惘惆惘愕惘悋愕惘悴悋惡惆悋愕惠.
3-悋愕惠悋惆慍悋惆悋慍悴悋悋惆悛愆擧悋惘愆惆悛愕惡
惠悋忰惡惘惘愕悋悋悴悋愆惆
惆惘惘擧慍惠忰悋惠擧愕拆惘悋愕擧惡惘悋惆惠12悋悋慍
愕悋2012惠悋2013惆惘拆悋愕悽惡愕悋:惘悋悛愕惡
拆悵惘悋悴悋悋惡悋惠惺惆悋惆慍悋惆愕惠惆
76. 惡惆悋慍悋惘 惘惠悋惘 惠忰 悋擧悋慍
The U.S. Department of Homeland Security warned that a
security update of Oracle Corp's Java software for Web
browsers does not do enough to protect computers from attack,
sticking to its previous advice that the program be disabled.
Technology | Mon Jan 14, 2013 4:16pm ESTRelated: TECH
U.S. says Java still risky, even after security update
BY JIM FINKLE
Java was responsible for 50 percent of all cyber attacks last
year in which hackers broke into computers by exploiting
software bugs, according to Kaspersky Lab (2012).
惘擧慍悋惠惆悛惘擧悋愆惆悋惘惆悋惆擧
惡惘慍惘愕悋惠惶忰忰悴悋悋惠愕愀愆惘擧惠
悋惘悋擧惡惘悋惘惘擯惘悋惡惠悴惡悽愆惡惆
惠悋惆悋惺忰悋惠惡愕愕惠悋
擧悋拆惠惘愆惆.
惠悽惶惶悋悋惠愆惆悋惘惆悋惆悋惆擧
擧悋拆惠惘悋愆悽惶擧惆惘惘惘擯惘悽惆悴悋悋
惘悋惡悋悴惘悋惆惘悛惘惆擧悋愕惠惘惆
惠悋悴悴惘惘悋惘擯惘惆.
惡悋惡惘惡悋擧愕拆惘悋愕擧50%擧忰悋惠
愕悋惡惘惆惘愕悋擯悵愆惠惡悋惘惆擧惘悋悋慍
愀惘悛愕惡拆悵惘悋悴悋悋悋悴悋愆惆
愕忰 惘悋 惡 愆惆悋惘
77. 惡惆悋慍悋惘 惘惠悋惘 惠忰 悋擧悋慍
The Web Just Became More Secure:
Google Drops Support for Java
Written by Matthew HughesSeptember 11, 2015
Ads by Google
Its safe to say that Java particularly in the browser has lost
its shine. A large part of this is due to security concerns. The
next version of Google Chrome (version 45, scheduled for
December) has removed support for it entirely.
愕忰 惘悋 惡 愆惆悋惘
#37: n example of油activity diagram油for油online shopping. Online customer can browse or search items, view specific item, add it to shopping cart, view and update shopping cart, checkout. User can view shopping cart at any time. Checkout is assumed to include user registration and login.
This example does not use partitions, most of the actions are assumed to be fulfilled by online customer.
#38: n example of油activity diagram油for油online shopping. Online customer can browse or search items, view specific item, add it to shopping cart, view and update shopping cart, checkout. User can view shopping cart at any time. Checkout is assumed to include user registration and login.
This example does not use partitions, most of the actions are assumed to be fulfilled by online customer.
#45: An example of油web application油UML油deployment diagram. Book club web application油artifact book_club_app.war油is deployed on Catalina Servlet 2.4 / JSP 2.0 Container which is part of Apache Tomcat 5.5油web server.
The油book_club_app.war油artifact油manifests油(embodies) OnlineOrders油component. The artifact contains three other artifacts, one of which油manifests油UserServices油component.
The Application Server油束device損油(computer server) has油communication path油to Database Server 束device損 (another server).
#52: Before defining security requirements, security engineers need to identify those parts of the software system that requires security. These parts of the software system are
called Target of Evaluation (TOE). Once TOE is identified then finding security functional requirements (SFR) for those parts becomes simple. [8] lists different set of classes depending on the nature of application. Different set of SFRs can be chosen for the required TOE. Once required SFRs are chosen, then table can be designed to monitor its implementation in required software application. SFRs are chosen to counter threats in TOE of software system. For example; if we are trying to gather SFR of a web application; Table 1 lists related SFRs and their activity. There can be different TOE in a single software application; therefore different set of SFRs are collected for each TOE.
Once the uncertain requirements are refined by SFR module, then we are ready to start designing our software. Design phase is important and requires more consideration in terms of security. Based on the information provided by analysis phase (Security Requirements by user stories and SFR) a threat model is developed. If security engineer feels some of the information is missing or some other security threats are possible then it goes back to analysis for the refinement of the security requirements. If security expert finds no problems, then a mitigation plan is designed to cater all those threats listed in threat model. Requirements engineering is the main building block for any software development. Security engineers try to elicit security requirements by different methods, e.g. user stories, abuse cases, etc.
Most of the occasion requirements gathered from user stories and other sources are not well defined. These requirements can be refined by security functional requirements (SFR) module (Details are given in section IV-A).
#61: Privileged Code
When you design and build secure assemblies, be able to identify privileged code. This has important implications for code access security. Privileged code is managed code that accesses secured resources or performs other security sensitive operations such as calling unmanaged code, using serialization, or using reflection. It is referred to as privileged code because it must be granted permission by code access security policy to be able to function. Non-privileged code only requires the permission to execute.
Auditing is the practice of inspecting logs for the purpose of verifying that the system is in a desirable state
In software engineering, software configuration management (SCM) is the task of tracking and controlling changes in the software