Artifact Evolution Over Life Cycle


What is an artifact, exactly?

No, we're not talking about ancient relics. The sort of artifact we're discussing is one that has to do with software development.

Whether you're a novice or a seasoned developer, you'll encounter software artifacts. They're critical components of any piece of software, from a simple webpage to a more complicated application.

The software development process will be significantly more difficult than it needs to be if artifacts are not correctly produced and preserved.

Continue reading to discover all you need to know about software artifacts and what you'll need to know going ahead.

Artifact

An artifact is a by-product of software development, to put it simply. It's anything that's made in order to produce a piece of software. This might comprise everything from data models to schematics to setup scripts, and so forth.

When it comes to software development, "artifact" is a rather wide phrase. Most pieces of software need a large number of artifacts in order to execute. Some artifacts describe how a piece of software is meant to operate, while others enable it to execute.

What Is an Artifact and Why Is It Called So?

Consider a dig location for archaeology. Any man-made item discovered during an archaeological investigation is referred to as an artifact. These artifacts assist us in determining what civilization was like and in constructing a picture of their culture.

Similarly, all digital objects are the result of human labor. They aid other programmers in understanding the mental process that goes into creating a piece of software. As a result, developers are better able to make judgments and have a better knowledge of how to continue.

The Artifact Creation Process

Before coding anything, a software development team would often create a list of required artifacts for a piece of software. Risk assessments, source code, illustrations, and use cases are examples of these. This is done during the project's research phase.

Developing software without any of these elements is like constructing a home without blueprints. The process would be a shambles, and critical components would always be overlooked. As a result, gathering all of your artifacts is one of the most important aspects of the software development life cycle.

A development team may begin programming and developing the real software after all of the basic artifacts have been compiled. Additional artifacts may be created as a result of this operation. This might be anything from fresh drawings to use cases, and it could happen at any moment.

For full correctness, certain artifacts, such as the end-user agreement, may need to be generated after the program is finished. Before the software is compiled and sent out for consumption, it may be put in.

Artifacts of Software

Artifacts may be found in many different places of any particular piece of software. Here are a few samples of the most prevalent ones.

Case Studies

Utilize cases are explanations of how users are supposed to use a program, website, or piece of software to complete tasks. These are significant artifacts because they are closely related to the site's purpose.

Unified Modeling Language (UML)

UML is a method of visualizing and graphing the behavior of the software. It helps to map out linkages, processes, and other things.

UML, like use cases, does not immediately assist software in running, but it is an important stage in the design and development of a piece of software.

Diagrams of Classes

A class diagram, like UML, is a diagram that shows the structure of a piece of software or application. Class diagrams are used to visually map out the linkages and processes that occur between clicks.

Images

Artifacts are any pictures used to aid in the development of a piece of software. These might be sample photographs or early design images that were utilized to aid in the product's creation. Simple drawings and diagrams might be utilized to assist map out the program.

Documents Pertaining to Software

Software documentation makes up the bulk of the artifacts. An artifact is a document that explains the features or qualities of a piece of software. These might be related to the architecture, technical side, end-user procedures, and marketing of the product.

The bulk of these objects will never enter the user's thoughts. They're aimed towards programmers and anybody else who could be interested in the software from a large-scale commercial standpoint. Much of it is technical and uninteresting to the average user.

Original Source Code

The language used to program a piece of software is known as source code. It's not the physical code that's the problem; it's the system that makes the code operate. According to software engineers, this is also an artifact.

Notes from the Meeting

In the realm of software design, even meeting notes are artifacts. This might be whole meeting transcripts or simply scribbled notes. These conversations may have resulted in crucial design decisions and elements, so be sure to keep track of them in your repository.

Risk Evaluations

A risk assessment examines a piece of software's possible dangers and drawbacks. It instructs a developer on what not to do and highlights issues that the developer must overcome. These are, in some respects, the most important artifacts for developers to consider.

Prototypes

Your program's prototype is an artifact. These might be completely functional software or sneak peeks at certain areas of the program. In any case, they assist a developer in gaining a better understanding of what has already been done and attempted, as well as a sense of where to go next.

An application that has been compiled

The program is then compiled into a useful application after it has been completely created. This is the last artifact, and it's one of the few that an average user will notice. The user will be able to install the built program on their PC and use it as intended.

In the artifact repository, there might be many of them. Various versions may exist, ranging from early prototypes through experimental builds to the final compilation.

What Is the Importance of Artifacts?

Artifacts are vital to keeping track of throughout the creation of any piece of software, as well as thereafter.

It might be significantly more difficult to build software over time if you don't have all of the artifacts. This is particularly true if development is transferred from one person to another. When a new developer is assigned to a project, one of the first things they'll want to do is review the artifacts to obtain a better understanding of how the product works.

A developer is left in the dark if an artifact is missing. This is why the majority of artifacts are stored in repositories. This allows relevant developers to access the artifacts from a single location at any time.

What Is an Artifact Repository, and How Does It Work?

An artifact repository is a place where all of the essential artifacts for the development of a piece of software may be stored. For developers' convenience, it's usually hosted on a local server or in the cloud.

All software development projects need the use of an artifact repository. It simplifies a difficult process by providing developers with all of the materials they need in one location. It reduces the amount of time spent searching and allows developers to easily move, add, and remove artifacts.

In software development, there are three kinds of artifact repositories −

  • A remote repository −is one that is hosted on a different URL, sometimes by a third-party firm. It is not possible to add new artifacts to a remote repository, but it is possible to delete them.

  • Local Repository − A local repository is one that is kept on a dedicated server in-house.

  • Virtual − A hybrid of the two options above. This repository is accessible using a single URL, which allows access to both local and distant artifact files. This makes it simple to add and delete artifacts from each repository.

For developers, artifact repository software performs a few critical roles. One of them is versioning support. The program will keep track of when each artifact is created and assign a version number to each build.

Repository software can also assist in the preservation of essential artifacts and the deletion of those that have become obsolete. When a new version of an item is uploaded to the repository, this may happen.

Of course, privacy and authorization are the most critical aspects of a successful artifact repository. All of these artifacts will be kept secret by the program, which will need a password to access.

Artifacts of Various Types

Software artifacts may be classified into three groups. Code-related artifacts, project management artifacts, and documentation are all examples. Let's take a closer look at each of them.

Artifacts of Code

Each programmed process creates artifacts, and each program is made up of codes. These are some of them −

  • Test Suites − A set of coded tests to run against software to ensure that a certain procedure is operating.

  • Setup Scripts − These scripts enable the software to execute on a certain computer.

  • Compiled Code − This is the final, compiled code that the user sees.

  • Logs and information gathered throughout the testing process are referred to as test output.

Code artifacts are necessary but inevitable by-products of the coding process. They enable a developer to test the ins and outs of their program before releasing it to the public, enabling them to improve it for the end-user.

Documentation

We've already discussed a few different sorts of document objects. In essence, any documentation pertaining to the program in question is a relevant artifact. This includes the following −

  • Diagrams − We discussed class diagrams before. Diagrams are an excellent tool to see a program's internal activities. These will be developed at various points throughout the coding process, especially in the early phases.

  • End-User Agreements − Any document intended for the user to read is an end-user agreement. This contains documentation such as terms of service and anything else that aids the user's understanding of the application.

  • Internal Documents − Any document that aids programmers, developers, and bug-fixers in improving and understanding the software. This also contains walkthroughs, which are instructions for testers, quality assurance personnel, and others on how to use the program.

The documentation category encompasses a large portion of a program's artifacts. These are created at every stage of the development process, from start to finish. There are more documentation artifacts the more research that goes into software.

No matter how little or preliminary the document seems to be, it is critical to maintain track of it.

Artifacts of Project Management

During the project management phase, these artifacts are created. They may appear following standard software testing or bug checks. These artifacts are related to the program's desired behavior and what the customer expects from it.

They are as follows −

  • User Cases/Stories − These artifacts specify in technical terms what the software should perform. They explain what the program's goals are and how they may be met.

  • Criteria − These artifacts set forth the program/minimal project's acceptance criteria. Typically, they are provided by the customer or the project manager. This provides engineers with a specific aim to strive towards.

The development team can see whether they're on track with project management artifacts and get a sense of how to get there. These are critical pieces of information for all members of the development team, new and old.

Life Cycle Evolution of Artifacts

  • Inception Phase − This phase focuses primarily on key needs, with a secondary emphasis on an initial deployment perspective. The overarching intent or goal of this phase is to obtain agreement among all stakeholders on the project's lifecycle goals. It also focuses on predicting possible hazards, as well as the entire project's cost and timeline.

  • The phase of Explanation − During this phase, the requirements or demands are more detailed, the design set is more diverse, and the implementation and deployment difficulties are given more attention. The activities of the elaboration phase must be able to assure and validate that the architecture, requirements or needs, and plans are stable enough, that risks are adequately mitigated, and that the cost and schedule for the establishment and development can be forecast within an acceptable range.

  • The phase of Construction − This phase's major and primary goals are design and execution. Newly produced software is integrated and injected where and when needed during this phase. The key purpose and goals of this phase are to minimize or decrease development costs by optimizing resources and minimizing unneeded trash, to achieve high quality quickly, and to produce as many usable versions as feasible.

  • The phase of Transition − The major purpose of this step is to ensure that the deployment set is consistent and comprehensive in comparison to other sets. This phase must contain activities such as beta testing to verify the new system, beta testing, and parallel operations that are comparable or related to the old system that it is replacing, among others.

Updated on: 25-Nov-2021

828 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements